2010-12-12 118 views
16

我正在一个网站上工作,我想要做的事情之一是显示我的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”。任何帮助?

回答

-5

如果您laravel应用程序内部的服务器上运行,你可以使用以下获取服务器的外部地址:

$external_ip = exec('curl http://ipecho.net/plain; echo'); 
+2

邪恶,不好和错误。该代码非常差,不应该用于生产。你应该使用内在的PHP Curl库。这避免了派生一个shell的http进程。谁知道'curl'是否在路上?什么是“回声”?无论如何,Web服务器决不应该被允许在组织的外围之外。如果必须的话,它应该通过内部代理。 – dland 2015-11-13 10:42:37

+2

在整个页面上都没有提到laravel,接受你的。 -1 – TheBlackBenzKid 2016-01-25 09:09:31