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?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
没有办法。
所以如果想要过滤恶意请求,就尽量别动这方面的歪脑筋。
做过滤就老老实实按照账号做过滤,按照IP过滤只能作为辅助手段。
没有办法,因为经过代理服务器转发,会重新封包,报文里的ip都是代理的了……
不能。
使用代理之后 HTTP_CLIENT_IP 、HTTP_X_FORWARDED_FOR 可通过http头伪造,不能信任,REMOTE_ADDR倒是一个真实 ip ,但是代理的ip
不能,可以看下高匿代理的原理,你就清楚了
检测代理IP匿名程度的方法:
http://blog.mimvp.com/2014/08...