我最近受到来自代理访问者和不在网站目标人口统计范围内的国家/地区的大量流量的打击(来自这些国家/地区的访问者无法使用该服务)。
我不想简单地阻止访问者,我不想为这些访问者呈现 Google Analytics 和其他分析代码。这似乎是一个快乐的媒介,而不是仅仅打击所有进来的东西,但我不确定检测代理访问者的最佳方法。检测代理访问者和适合特定地理 IP 边界的访问者的首选方法是什么?
我最近受到来自代理访问者和不在网站目标人口统计范围内的国家/地区的大量流量的打击(来自这些国家/地区的访问者无法使用该服务)。
我不想简单地阻止访问者,我不想为这些访问者呈现 Google Analytics 和其他分析代码。这似乎是一个快乐的媒介,而不是仅仅打击所有进来的东西,但我不确定检测代理访问者的最佳方法。检测代理访问者和适合特定地理 IP 边界的访问者的首选方法是什么?
只需运行此函数来检测是否使用了代理,如果是,您可以使用任何您想要的分析代码或阻止用户。
function proxy_detected()
{
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))
{
return true;
} else {
return false;
}
}
echo ( proxy_detected() ) ? "Proxy detected" : "No proxy detected";