thinkphp如何获取客户端IP

 更新时间:2015年11月03日 14:42:01   投稿:lijiao  
这篇文章主要介绍了thinkphp如何正确获取客户端IP,除了使用内置get_client_ip函数,还有没有其他方法?请阅读下文揭晓答案。

thinkphp框架中系统内置了get_client_ip方法用于获取客户端的IP地址,使用示例:
$ip = get_client_ip();
除了thinkphp内置get_client_ip函数外,也可使用下面函数获取客户端IP地址。
$type表示返回类型 0 返回IP地址, 1 返回IPV4地址数字
分享代码如下

function get_client_ip($type = 0) {
  $type    = $type ? 1 : 0;
  static $ip =  NULL;
  if ($ip !== NULL) return $ip[$type];
  if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $arr  =  explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
    $pos  =  array_search('unknown',$arr);
    if(false !== $pos) unset($arr[$pos]);
    $ip   =  trim($arr[0]);
  }elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
    $ip   =  $_SERVER['HTTP_CLIENT_IP'];
  }elseif (isset($_SERVER['REMOTE_ADDR'])) {
    $ip   =  $_SERVER['REMOTE_ADDR'];
  }
  // IP地址合法验证
  $long = ip2long($ip);
  $ip  = $long ? array($ip, $long) : array('0.0.0.0', 0);
  return $ip[$type];

希望本文对大家深入学习php程序设计有所帮助。

相关文章

  • PHP实现微信JS-SDK接口选择相册及拍照并上传的方法

    PHP实现微信JS-SDK接口选择相册及拍照并上传的方法

    这篇文章主要介绍了PHP实现微信JS-SDK接口选择相册及拍照并上传的方法,涉及php微信接口的调用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-12-12
  • 深入Apache与Nginx的优缺点比较详解

    深入Apache与Nginx的优缺点比较详解

    本篇文章是对Apache与Nginx的优点与缺点进行了详细的分析比较,需要的朋友参考下
    2013-06-06
  • php分页函数完整实例代码

    php分页函数完整实例代码

    这篇文章主要介绍了php分页函数完整实例代码,采用较为详尽的注释说明了PHP分页的方法及原理,需要的朋友可以参考下
    2014-09-09
  • php结合curl实现多线程抓取

    php结合curl实现多线程抓取

    PHP利用 Curl可以完成各种传送文件操作,比如模拟浏览器发送GET,POST请求等等,然而因为php语言本身不支持多线程,所以开发爬虫程序效率并不高,因此经常需要借助Curl Multi Functions 这个功能实现并发多线程的访问多个url地址以实现并发多线程抓取网页或者下载文件
    2015-07-07
  • hessian 在PHP中的使用介绍

    hessian 在PHP中的使用介绍

    今天听同事说hessian也可以以http的方式和其他的语言交换数据,一直用soap,看来是孤陋寡闻了。
    2010-12-12
  • PHP中的print_r 与 var_dump 输出数组

    PHP中的print_r 与 var_dump 输出数组

    下面小编就为大家带来一篇PHP中的print_r 与 var_dump 输出数组。小编觉得挺不错的,现在就分享给大家,也给大家做个参考
    2016-06-06
  • php ajax实现文件上传进度条

    php ajax实现文件上传进度条

    这篇文章主要介绍了php ajax实现文件上传进度条的相关资料,需要的朋友可以参考下
    2016-03-03
  • php简单开启gzip压缩方法(zlib.output_compression)

    php简单开启gzip压缩方法(zlib.output_compression)

    网上的教程基本是你抄我来我抄他,不外乎加头加尾或者自构函数两种写法。实际上每个php页面都要去加代码——当然也可以include引用,不过总显得略微麻烦
    2013-04-04
  • PHP图形操作之Jpgraph学习笔记

    PHP图形操作之Jpgraph学习笔记

    这篇文章主要介绍了PHP图形操作之Jpgraph学习笔记,较为详细的介绍了Jpgraph的安装与使用技巧,需要的朋友可以参考下
    2015-12-12
  • PHP检测接口Traversable用法详解

    PHP检测接口Traversable用法详解

    这篇文章主要介绍了PHP检测接口Traversable用法,结合实例形式分析了Traversable接口检测遍历功能的相关操作技巧,需要的朋友可以参考下
    2017-12-12

最新评论