为什么$ _SERVER [' REMOTE_ADDR']返回127.0.0.1

时间:2012-02-09 21:57:37

标签: php

我正在编辑一个远程服务器,由于某种原因,它正在返回127.0.0.1,我也在我的iPhone上尝试了它,它做了同样的事情。

echo $_SERVER['REMOTE_ADDR']; // returns 127.0.0.1

4 个答案:

答案 0 :(得分:6)

这意味着执行脚本的客户端托管在本地主机上。

可能是因为包含$ _SERVER ['REMOTE_ADDR']的脚本是使用来自同一服务器上另一个脚本的CURL请求调用的。

也可能是因为代理系统。

Using Django, why would REMOTE_ADDR return 127.0.0.1 on a web server?

的可能间接重复

答案 1 :(得分:1)

听起来就像你在该服务器上命中代理一样。

我没有尝试过,但是像nginx这样的安装可能会有相同的行为。

答案 2 :(得分:1)

迟到但我在Plesk 11服务器上遇到了同样的问题。我在荷兰论坛(tweakers.net)上发现它与Nginx有关,这是在Plesk 11中启用的标准.Nginx充当代理并为要提供的数据提供apache。因为Nginx正在提供数据apache从Nginx获取localhost IP。

在Plesk 11和更新版本中禁用Nginx的过程非常简单。请按照分步说明,在Plesk安装中快速禁用Nginx。

  1. 以管理员身份登录Plesk控制面板下一步转到 “工具和服务”,然后进入“服务管理”
  2. 在“服务管理”下,找到“反向代理服务器(nginx)”
  3. 找到后,只需停止“反向代理服务器(nginx)”服务。
  4. 一旦“反向代理服务器(nginx)”停止,您就会注意到Apache接管了所有的Web请求。

答案 3 :(得分:0)

您的iPhone是否已连接到计算机所连接的同一网络?