我想檢測一個人是否使用代理訪問我的網站,如果它是真的,那麼限制他訪問該網站。我在某處找到了這段代碼,但我不確定它是否會起作用。有人可以解釋一下它是否足夠,或者我是否需要添加其他任何東西以及這段代碼如何工作?通過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