【问题标题】:PHP How detect randomly generated IP from HTTP Request?PHP如何从HTTP请求中检测随机生成的IP?
【发布时间】:2011-10-14 05:27:56
【问题描述】:

我已经使用 PHP 创建了一个 Web 应用程序。我想知道是否从代理或客户端应用程序随机生成的 IP。我们的应用程序只允许每个 IP 地址单击一次。 我使用$_SERVER['HTTP_USER_AGENT'] 检查了用户代理。我目前得到了用户代理。但我想知道用户代理是否使用任何其他工具生成 IP 地址 动态的。是否可以使用代码进行检查?

【问题讨论】:

    标签: php http-headers httpwebrequest ip


    【解决方案1】:

    你可以试试这段代码:

    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');
    }
    

    来源:digitalpoint

    【讨论】:

    • 我从哪里得到变量 $errno 和 $errstr 的值?这段代码是帮助我检测IP是动态生成的还是不是?有时客户端使用代理服务器,我希望每个 ip 只允许一个请求(用于检查)
    • 请看php.net/manual/en/function.fsockopen.php,这些变量是通过引用传递的。此代码将检测用户是否正在使用代理服务。大多数 IP 是动态生成的 - 至少是个人 IP。静态 IP 主要用于公司。当您说动态生成时,我猜您的意思是使用代理服务?
    • 非常有用的信息。如何使用PHP代码检测匿名代理服务器?
    猜你喜欢
    • 2013-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-03
    • 2012-03-03
    • 2013-11-08
    • 2012-09-17
    相关资源
    最近更新 更多