纵有疾风起
人生不言弃

PHP 获取客户端 IP 地址

先来了解一个变量的含义:

$_SERVER[‘REMOTE_ADDR‘]:浏览当前页面的用户计算机的ip地址

$_SERVER[‘HTTP_CLIENT_IP‘]:客户端的ip

$_SERVER[‘HTTP_X_FORWARDED_FOR‘]:浏览当前页面的用户计算机的网关

$_SERVER[‘HTTP_X_REAL_IP‘]:nginx 代理模式下,获取客户端真实IP

/** *  获取客户端IP地址 */function real_ip(){    $ip = $_SERVER['REMOTE_ADDR'];    if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', $_SERVER['HTTP_X_FORWARDED_FOR'], $matches)) {        foreach ($matches[0] AS $xip) {            if (!preg_match('#^(10|172\.16|192\.168)\.#', $xip)) {                $ip = $xip;                break;            }        }    } elseif (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CLIENT_IP'])) {        $ip = $_SERVER['HTTP_CLIENT_IP'];    } elseif (isset($_SERVER['HTTP_CF_CONNECTING_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CF_CONNECTING_IP'])) {        $ip = $_SERVER['HTTP_CF_CONNECTING_IP'];    } elseif (isset($_SERVER['HTTP_X_REAL_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_X_REAL_IP'])) {        $ip = $_SERVER['HTTP_X_REAL_IP'];    }    return $ip;}

 

文章转载于:https://www.cnblogs.com/woods1815/p/9941375.html

原著是一个有趣的人,若有侵权,请通知删除

未经允许不得转载:起风网 » PHP 获取客户端 IP 地址
分享到: 生成海报

评论 抢沙发

评论前必须登录!

立即登录