2012-05-13 32 views
3

我是一个PHP新手。PHP - IP地址回显为127.0.0.1

当我使用HotSpot盾牌在我的网页上显示时,我想知道我的IP地址(我只是,我修改了我的主机文件,用于HotSpot盾牌网页),但不幸的是,它的回显为127.0。 0.1。主要目标是当我连接时,我已经设置的IP地址在页面上回显。这是我用过的代码:

<?php $rmt = $_SERVER["REMOTE_ADDR"]; echo "$rmt \n" ?> 

唯一的问题是$ rmt是127.0.0.1。你们有没有人知道如何让它显示公共IP地址来显示?

回答

1

$_SERVER['REMOTE_ADDR']指的是从你连接IP地址。如果您在本地计算机上运行服务器并从本地计算机连接,则它使用本地ip(127.0.0.1始终为“localhost”)。

为了显示不同的IP,您需要在另一台服务器(最好是公共网站酒店服务器)上运行它,或者从另一台机器连接到您的服务器。

4

这可能发生在本地代理服务器上;你可以检查出由var_dump($_SERVER);您的要求发送的其他头和搜索的东西一样X-Forwarded-ForX-Real-IP

+0

好主意。我没有想到这一点。我只是假设OP在本地运行一切。如果情况并非如此,那么这是值得一试! –

1

我只是有同样的问题。 事实证明,我得到的是代理IP地址,而不是我自己的IP。 所以我跑:

var_dump($_SERVER) 
//you could also use print_r($_SERVER); 

然后看着这样的事情:

["HTTP_X_REAL_IP"] 

然后捕获它变成一个变种是这样的:

$ip = getenv('HTTP_X_REAL_IP')