为什么$ _SERVER ['REMOTE_ADDR']显示错误的IP?

时间:2016-04-07 03:47:53

标签: php ip

我正在使用$_SERVER['REMOTE_ADDR'];来获取访问者的IP。我不在乎他们是否支持代理,VPN等;我需要一种无法由最终用户操纵的IP措施。

对于某些用户,$_SERVER['REMOTE_ADDR'];未返回正确的IP - 而是返回Google的一个IP,例如64.233.173.164

我通过询问一位用户检查他们的IP来确认这一点,方法是检查here,他们的IP与$_SERVER['REMOTE_ADDR'];显示的IP不同。

这怎么可能?

更新:我已经与相关用户进行了交谈,他说他没有使用谷歌翻译。为什么会在REMOTE_ADDR中显示Google IP?

1 个答案:

答案 0 :(得分:3)

  

我不在乎他们是否支持代理,VPN等;

如果他们使用的是VPN,代理或NAT,那么$_SERVER['REMOTE_ADDR']将包含那个 ip,而不是用户,这就是你的意思得到。

  

更新:我已经与相关用户进行了交谈,他说他没有使用谷歌翻译。为什么会在REMOTE_ADDR中显示Google IP?

您在OP中提到的Google IP属于google-proxy-64-233-173-164.google.com,这是此访问者的计算机或ISP正在使用的代理

如果您要检查HTTP_X_FORWARDED_FORHTTP_CLIENT_IP您将获得该信息