PHP显示服务器IP地址

时间:2010-12-12 05:00:20

标签: php ip-address ip

我正在网站上工作,我想做的其中一件事就是向用户显示我的IP地址。该网站是使用CodeIgniter制作的,所以我希望用PHP找到我的服务器IP。 IP地址可能会改变(它是漫游者),所以我想动态地找到它,而不仅仅是硬编码。我试过这个:

$data['hostname'] = NULL;
$data['ip'] = NULL;
$var = gethostname();
if ($var === FALSE) {
  $var = NULL;
} else {
  $data['hostname'] = $var;
  $data['ip']   = gethostbyname($var);
}

然而,我没有给我主机名和IP,而是获得:“Moria”和“127.0.1.1”。不是我想要的。相反,它应该为主机名和IP地址说“Moria.student.rit.edu”。有什么帮助吗?

3 个答案:

答案 0 :(得分:47)

试试$_SERVER['SERVER_ADDR']。它将是服务器正在侦听的IP地址。您可以使用DNS功能(例如gethostbyaddr())来获取主机名。

请参阅http://www.php.net/manual/en/reserved.variables.server.php

答案 1 :(得分:0)

获取服务器IP地址 $ _SERVER ['SERVER_ADDR'];

和服务器端口 $ _SERVER ['SERVER_PORT'];

答案 2 :(得分:-9)

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

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