我正在使用$_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?
答案 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_FOR
或HTTP_CLIENT_IP
您将获得该信息