PHP显示服务器IP地址
我正在一个网站上工作,我想要做的事情之一是显示我的IP地址给用户。该网站是用CodeIgniter制作的,所以我正在寻找使用PHP查找我的服务器IP。 IP地址可能会改变(这是一个漫游者),所以我想动态地找到它,而不是硬编码它。我尝试这样做:PHP显示服务器IP地址
$data['hostname'] = NULL;
$data['ip'] = NULL;
$var = gethostname();
if ($var === FALSE) {
$var = NULL;
} else {
$data['hostname'] = $var;
$data['ip'] = gethostbyname($var);
}
然而,不是给我的主机名和IP,我得到了:“莫里亚”和“127.0.1.1”。不是我正在寻找的东西。相反,它应该为主机名称和IP地址说“Moria.student.rit.edu”。任何帮助?
尝试$_SERVER['SERVER_ADDR']
。这将是服务器正在侦听的IP地址。您可以使用DNS功能(例如gethostbyaddr()
)来获取主机名。
参见http://www.php.net/manual/en/reserved.variables.server.php。
如果您laravel应用程序内部的服务器上运行,你可以使用以下获取服务器的外部地址:
$external_ip = exec('curl http://ipecho.net/plain; echo');
邪恶,不好和错误。该代码非常差,不应该用于生产。你应该使用内在的PHP Curl库。这避免了派生一个shell的http进程。谁知道'curl'是否在路上?什么是“回声”?无论如何,Web服务器决不应该被允许在组织的外围之外。如果必须的话,它应该通过内部代理。 – dland 2015-11-13 10:42:37
在整个页面上都没有提到laravel,接受你的。 -1 – TheBlackBenzKid 2016-01-25 09:09:31
妈呀,它的工作。谢谢! – 2010-12-12 05:07:45