使用代理时如何获取真实访客IP地址?

Barbara Streisand
发布: 2024-11-04 13:39:01
原创
785 人浏览过

How to Get the Real Visitor IP Address When Proxies Are in Use?

尽管使用代理,仍检索真实访客 IP 地址

通常用于获取访客 IP 地址的 PHP 代码是:

<code class="php"><?php echo $_SERVER['REMOTE_ADDR']; ?></code>
登录后复制

但是,当代理运行时,此方法无法捕获真实IP。为了寻求此问题的解决方案,让我们深入研究替代方法。

用于 IP 确定的自定义 PHP 函数

考虑到 CloudFlare 连接,提供的 PHP 代码提供了全面的解决方案以及各种其他因素:

<code class="php">function getUserIP()
{
    // Handle CloudFlare connections
    if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
          $_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
          $_SERVER['HTTP_CLIENT_IP'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
    }
    $client  = @$_SERVER['HTTP_CLIENT_IP'];
    $forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
    $remote  = $_SERVER['REMOTE_ADDR'];

    if(filter_var($client, FILTER_VALIDATE_IP))
    {
        $ip = $client;
    }
    elseif(filter_var($forward, FILTER_VALIDATE_IP))
    {
        $ip = $forward;
    }
    else
    {
        $ip = $remote;
    }

    return $ip;
}
$user_ip = getUserIP();</code>
登录后复制

此代码将 IP 地址分配给变量 $user_ip,然后可以根据需要在 PHP 脚本中使用该变量。

以上是使用代理时如何获取真实访客IP地址?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!