我用了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?
没有办法。
所以如果想要过滤恶意请求,就尽量别动这方面的歪脑筋。做过滤就老老实实按照账号做过滤,按照IP过滤只能作为辅助手段。