PHP 获取客户端 IP 地址的方法实例代码
先来了解一个变量的含义:
$_SERVER['REMOTE_ADDR']:浏览当前页面的用户计算机的ip地址
$_SERVER['HTTP_CLIENT_IP']:客户端的ip
$_SERVER['HTTP_X_FORWARDED_FOR']:浏览当前页面的用户计算机的网关
$_SERVER['HTTP_X_REAL_IP']:nginx代理模式下,获取客户端真实IP
/**
*获取客户端IP地址
*/
functionreal_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;
}
总结
以上所述是小编给大家介绍的PHP获取客户端IP地址的方法实例代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!