2014-02-13 105 views
0

近期来自代理访问者和不属于目标受众特征的国家/地区(来自这些国家/地区的访问者无法使用该服务),我遭到了大量流量的攻击。如何检测代理/垃圾邮件访问者?

与其仅仅阻止访问者,我不想为这些访问者呈现Google Analytics和其他分析代码。这似乎是一个快乐的媒体,而不是扼杀所有进入的内容,但我不确定检测代理访问者的最佳方式。检测适合某些地理IP边界的代理访问者和访问者的首选方法是什么?

回答

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

良好的通话,但我也很好奇,就添加VPN代理到这个问题,以及那些看似不可能检测到任何这样的想法? – ylluminate

+0

@ylluminate我不知道它有可能检测VPN我认为它不能完成,除非你阻止提供商,但不知道。 – dxer

+0

是的,我担心我会用MaxMind或其他方法来检测这些。我希望有另一种方式与昂贵的选择。谢谢。 – ylluminate