首页 > 语言 > PHP > 正文

PHP 获取客户端 IP 地址的方法实例代码

2024-05-05 00:05:48
字体:
来源:转载
供稿:网友

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

$_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;}

总结

以上所述是小编给大家介绍的PHP 获取客户端 IP 地址的方法实例代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!


注:相关教程知识阅读请移步到PHP教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选