首页 > 后端开发 > php教程 > 如何在 PHP 中可靠地获取客户端的 IP 地址?

如何在 PHP 中可靠地获取客户端的 IP 地址?

DDD
发布: 2024-12-18 07:19:11
原创
304 人浏览过

How to Reliably Get a Client's IP Address in PHP?

在 PHP 中获取客户端 IP 地址

在探索获取客户端 IP 地址的方法之前,了解为什么仅使用 $_SERVER[ 是至关重要的'REMOTE_ADDR'] 可能会导致不正确的结果。代理、防火墙或其他中介可以更改原始 IP 地址。

要解决此问题,可以使用以下替代方法:

使用 GETENV()

getenv() 函数允许我们访问环境变量。以下函数使用它:

// Function to get client IP address
function get_client_ip() {
    $ipaddress = '';
    if (getenv('HTTP_CLIENT_IP'))
        $ipaddress = getenv('HTTP_CLIENT_IP');
    else if (getenv('HTTP_X_FORWARDED_FOR'))
        $ipaddress = getenv('HTTP_X_FORWARDED_FOR');
    //... (Other conditions omitted for brevity)
    else
        $ipaddress = 'UNKNOWN';
    return $ipaddress;
}
登录后复制

使用 $_SERVER

PHP 还提供 $_SERVER 超全局来访问服务器变量。这是使用它的类似实现:

// Function to get client IP address
function get_client_ip() {
    $ipaddress = '';
    if (isset($_SERVER['HTTP_CLIENT_IP']))
        $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
    else if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
        $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
    //... (Other conditions omitted for brevity)
    else
        $ipaddress = 'UNKNOWN';
    return $ipaddress;
}
登录后复制

这两个函数都考虑多个服务器变量来获取最准确的可用 IP 地址。他们优先考虑 HTTP_CLIENT_IP 和 HTTP_X_FORWARDED_FOR 等变量,这提供了更高的可靠性。

以上是如何在 PHP 中可靠地获取客户端的 IP 地址?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板