我想检测一个人是否使用代理访问我的网站,如果它是真的,那么限制他访问该网站。我在某处找到了这段代码,但我不确定它是否会起作用。有人可以解释一下它是否足够,或者我是否需要添加其他任何东西以及这段代码如何工作?通过PHP检测代理
if (
$_SERVER['HTTP_X_FORWARDED_FOR']
|| $_SERVER['HTTP_X_FORWARDED']
|| $_SERVER['HTTP_FORWARDED_FOR']
|| $_SERVER['HTTP_CLIENT_IP']
|| $_SERVER['HTTP_VIA']
|| in_array($_SERVER['REMOTE_PORT'], array(8080,80,6588,8000,3128,553,554))
|| @fsockopen($_SERVER['REMOTE_ADDR'], 80, $errno, $errstr, 30))
{
exit('Proxy detected');
}
感谢您的帮助:)
这可能就够了。你无法检查所有'REMOTE_PORT's。 'fsockopen'行动可能将您的网站标记为mallware。 – FieryCat
为什么端口80被视为代理?我不会咨询'http_'头。 – chris85