如何检测代理/垃圾邮件访问者?

时间:2014-02-13 20:58:55

标签: php proxy google-analytics maxmind

我最近遇到来自代理访问者和不在网站目标受众范围内的国家/地区的大量流量(来自这些国家/地区的访客不能使用该服务)。

我不想仅仅阻止访问者,而是希望不为这些访问者呈现Google Analytics和其他分析代码。这似乎是一个快乐的媒介,只是打击一切进来,但我不确定检测代理访问者的最佳方式。检测适合某些地理IP边界的代理访问者和访问者的首选方法是什么?

1 个答案:

答案 0 :(得分:2)

只需运行此功能即可检测是否使用了代理,如果是,则可以使用您想要的任何分析代码或阻止用户。

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";