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

 更新时间:2018年11月11日 12:59:17   作者:且听の风吟  
这篇文章主要介绍了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;
}

总结

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

相关文章

  • Yii框架参数配置文件params用法实例分析

    Yii框架参数配置文件params用法实例分析

    这篇文章主要介绍了Yii框架参数配置文件params用法,结合实例形式分析了Yii框架参数配置文件params相关设置、调用、加载等操作技巧与注意事项,需要的朋友可以参考下
    2019-09-09
  • php增删改查示例自己写的demo

    php增删改查示例自己写的demo

    增删改查是对数据库最基本的操作,下面详细为大家介绍下如何连接数据库以及增删改查等等相关知识,感兴趣的朋友可以参考下
    2013-09-09
  • php中memcache 基本操作实例

    php中memcache 基本操作实例

    本文实例讲述了PHP中Memcache的基本操作及用法。分享给大家供大家参考。有需要的小伙伴快来研究下吧。
    2015-05-05
  • Laravel5.1框架注册中间件的三种场景详解

    Laravel5.1框架注册中间件的三种场景详解

    这篇文章主要介绍了Laravel5.1框架注册中间件的三种场景,结合实例形式详细分析了Laravel5.1框架控制器中的方法进行注册、给整个控制器进行注册以及给全局注册中间件三种应用场景,需要的朋友可以参考下
    2019-07-07
  • laravel5.4生成验证码的代码

    laravel5.4生成验证码的代码

    这篇文章主要为大家详细介绍了laravel5.4生成验证码的相关代码,使用gregwar和captcha实现验证码的具体步骤,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • PHP in_array()函数基本语法及严格比较使用实例

    PHP in_array()函数基本语法及严格比较使用实例

    PHP是一种常用的服务器端脚本语言,提供了丰富的内置函数来简化开发过程,其中,in_array()函数是一种非常有用的函数,用于判断数组中是否存在指定的值,本文将详细介绍in_array()函数的用法,并提供具体的代码示例
    2024-01-01
  • thinkphp5使html5实现动态跳转的例子

    thinkphp5使html5实现动态跳转的例子

    今天小编就为大家分享一篇thinkphp5使html5实现动态跳转的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • Thinkphp5行为使用方法汇总

    Thinkphp5行为使用方法汇总

    这篇文章主要介绍了Thinkphp5行为使用方法汇总,需要的朋友可以参考下
    2017-12-12
  • 浅谈laravel 5.6 安装 windows上使用composer的安装过程

    浅谈laravel 5.6 安装 windows上使用composer的安装过程

    今天小编就为大家分享一篇浅谈laravel 5.6 安装 windows上使用composer的安装过程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • Yii框架使用PHPExcel导出Excel文件的方法分析【改进版】

    Yii框架使用PHPExcel导出Excel文件的方法分析【改进版】

    这篇文章主要介绍了Yii框架使用PHPExcel导出Excel文件的方法,结合实例形式分析了Yii框架配置、导入PHPExcel组件以及调用PHPExcel导出Excel文件的相关操作技巧,需要的朋友可以参考下
    2019-07-07

最新评论