【发布时间】:2011-05-30 11:11:07
【问题描述】:
您好,我正在创建一个游戏,我希望能够判断用户是否在使用代理。如果他们比它基本上在他们的帐户上放置一个标志。我可以让它做标志,但我不确定如何判断用户是否正在使用代理。我已经看到您可以使用标头,但我不确定要查找哪个以及如何检查用户是否“具有”标头(除了正常的 http_referrer 和其他)。
非常感谢任何帮助。
编辑
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');
}
所以这段代码大部分都有效,当用户是代理时,它会很快退出。但是当它们不是时,加载需要很长时间(大约 10 秒)。有没有办法使用这个脚本但让它运行得更快?
编辑 2
将 fsockopen 的超时时间从 30 更改为 1,它的工作速度更快,并且仍在工作。谢谢大家的建议:)
【问题讨论】:
标签: php proxy http-headers