PHP如何透过高匿代理IP获取到客户端真实IP?

我用了www.xicidaili.com上的代理IP试了下,用了代理IP以后,纯真、IP138显示的都是代理IP而非我本机真实IP。
用这个函数获取出来的IP也是代理IP而非真实IP

function getIP()
{
global $ip; 
if (getenv("HTTP_CLIENT_IP"))
$ip = getenv("HTTP_CLIENT_IP"); //可通过http头伪造
else if(getenv("HTTP_X_FORWARDED_FOR")) 
$ip = getenv("HTTP_X_FORWARDED_FOR"); //可通过http头伪造
else if(getenv("REMOTE_ADDR")) 
$ip = getenv("REMOTE_ADDR"); //可能是用户真实IP也可能是代理IP
else 
$ip = "";
return $ip; 
}

有什么办法能够透过这种高匿代理IP获取到真实IP?

阅读 6.4k
4 个回答

没有办法。

所以如果想要过滤恶意请求,就尽量别动这方面的歪脑筋。
做过滤就老老实实按照账号做过滤,按照IP过滤只能作为辅助手段。

没有办法,因为经过代理服务器转发,会重新封包,报文里的ip都是代理的了……

不能。
使用代理之后 HTTP_CLIENT_IP 、HTTP_X_FORWARDED_FOR 可通过http头伪造,不能信任,REMOTE_ADDR倒是一个真实 ip ,但是代理的ip

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题