我正在网站上工作,我想做的其中一件事就是向用户显示我的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”。有什么帮助吗?
答案 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');