【问题标题】:How to detect proxy / spam visitors?如何检测代理/垃圾邮件访问者?
【发布时间】:2025-12-19 21:25:16
【问题描述】:

我最近受到来自代理访问者和不在网站目标人口统计范围内的国家/地区的大量流量的打击(来自这些国家/地区的访问者无法使用该服务)。

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

【问题讨论】:

    标签: php proxy google-analytics maxmind


    【解决方案1】:

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

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

    【讨论】:

    • 好电话,但我也很好奇,关于添加 VPN 代理的任何想法似乎都无法像这样检测到?
    • @ylluminate 我不确定是否可以检测到 VPN 我实际上认为除非您阻止提供商,否则无法检测到,但不确定。
    • 是的,我担心我会卡住使用 MaxMind 或类似的东西来检测这些。我希望有另一种方法与昂贵的选择相比。谢谢。