我的IP在PHP home server中显示错误

我的IP在PHP home server中显示错误,php,ip,Php,Ip,好的,很简单 <?PHP echo $_SERVER[REMOTE_ADDR]; ?> 好的,也许不是,我的IP当前是72.184.212.85,但是我在脚本的IP阻止系统上使用的代码将我的IP显示为我的家庭服务器IP127.0.0.1 因此,当我转到脚本时,我的IP显示为127.0.0.1,但当我转到其他网站时,它显示为72.184.212.85 如何获取要在测试服务器上显示的第一个值?$\u服务器['REMOTE\u ADDR']将始终显示请求来自的IP地址。如果您在自己的

好的,很简单

<?PHP
echo $_SERVER[REMOTE_ADDR];
?>

好的,也许不是,我的IP当前是72.184.212.85,但是我在脚本的IP阻止系统上使用的代码将我的IP显示为我的家庭服务器IP127.0.0.1

因此,当我转到脚本时,我的IP显示为127.0.0.1,但当我转到其他网站时,它显示为72.184.212.85


如何获取要在测试服务器上显示的第一个值?

$\u服务器['REMOTE\u ADDR']将始终显示请求来自的IP地址。如果您在自己的网络中的计算机上访问自己的脚本,您的外部IP地址将永远不会起作用。请求必须离开您的本地网络,然后返回以显示外部地址,但如果它都是本地的,那就永远不会发生。

您必须使服务器可以公开访问,然后从公共地址访问它。我猜您当前正在使用localhost访问您的服务器


运行你的服务器,比如说8080端口,然后在路由器中转发该端口,这样它就可以在互联网上公开。然后从而不是访问您的网页/phpscript。

这里有一个荒谬的解决方案,我不推荐:

使用域名注册您的家庭IP,然后通过URL查看请求的来源:

$url = $_SERVER["SERVER_NAME"];

然后对该结果进行dns查找,该结果应返回其注册到的IP,即您的外部IP

 $ext_ip = gethostbyaddr($url);
这不起作用的唯一原因(如果我错了,很抱歉)是,如果服务器名称使用与“远程主机”相同的方法,这是一种反向DNS查找,无法解析,因为您的内部IP不会注册到该域名。检查的一种简单方法是:

 phpinfo();

看看环境变量是什么。

嗯,不总是这样。据我所知,如果通过代理连接,远程地址将包含代理的地址,而不是实际调用方的IP。但无论如何,答案是肯定的。“请求来自的IP。”如果请求来自代理(代理代表用户执行请求),那么它将是代理的地址。这就是TCP/IP的工作原理,PHP无法神奇地看到代理的背后。他最好有一个很好的理由公开这样的端口。我希望我能让它工作,我尝试使用no-ip.org并按照所有设置说明进行操作,但在我的网站仍处于开发状态时,我的开发服务器始终无法在网络上运行。我还没有主机服务器,所以最好向朋友展示一下,这样的进展让我非常怀疑,如果他通过
localhost
访问他的网站,这会有什么不同。
 phpinfo();