• 售前

  • 售后

热门帖子
入门百科

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

[复制链接]
下一个秋天1 显示全部楼层 发表于 2021-10-26 12:46:53 |阅读模式 打印 上一主题 下一主题
先来了解一个变量的含义:
$_SERVER['REMOTE_ADDR']:浏览当前页面的用户盘算机的ip地点
$_SERVER['HTTP_CLIENT_IP']:客户端的ip
$_SERVER['HTTP_X_FORWARDED_FOR']:浏览当前页面的用户盘算机的网关
$_SERVER['HTTP_X_REAL_IP']:nginx 署理模式下,获取客户端真实IP
  1. /**
  2. * 获取客户端IP地址
  3. */
  4. function real_ip()
  5. {
  6.   $ip = $_SERVER['REMOTE_ADDR'];
  7.   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)) {
  8.     foreach ($matches[0] AS $xip) {
  9.       if (!preg_match('#^(10|172\.16|192\.168)\.#', $xip)) {
  10.         $ip = $xip;
  11.         break;
  12.       }
  13.     }
  14.   } elseif (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CLIENT_IP'])) {
  15.     $ip = $_SERVER['HTTP_CLIENT_IP'];
  16.   } elseif (isset($_SERVER['HTTP_CF_CONNECTING_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CF_CONNECTING_IP'])) {
  17.     $ip = $_SERVER['HTTP_CF_CONNECTING_IP'];
  18.   } elseif (isset($_SERVER['HTTP_X_REAL_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_X_REAL_IP'])) {
  19.     $ip = $_SERVER['HTTP_X_REAL_IP'];
  20.   }
  21.   return $ip;
  22. }
复制代码
总结
以上所述是小编给大家先容的PHP 获取客户端 IP 地点的方法实例代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时复兴大家的!

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作