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的in_array低性能问题

    遭遇php的in_array低性能问题

    PHP的性能一直在提高。然而,若是用的不恰当,或是一个不留神,还是可能会踩到PHP内部实现方面的坑的。我在前几天的一个性能问题上就碰到了
    2013-09-09
  • PHP实现的一致性HASH算法示例

    PHP实现的一致性HASH算法示例

    这篇文章主要介绍了PHP实现的一致性HASH算法,结合具体实例形式分析了hash算法的具体定义与使用技巧,需要的朋友可以参考下
    2018-03-03
  • php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法

    php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法

    这篇文章主要介绍了php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法,可实现通过调用ImageMagick功能的PHP扩展使PHP具备和ImageMagick相同的功能,最终实现强大的ImageMagick图形处理功能,非常具有实用价值,需要的朋友可以参考下
    2014-12-12
  • PHP临时文件的安全性分析

    PHP临时文件的安全性分析

    这篇文章主要介绍了PHP临时文件的安全性分析,对于临时文件的安全性及防范措施作出了比较详细的阐述,需要的朋友可以参考下
    2014-07-07
  • PHP设计模式的策略,适配器和观察者模式详解

    PHP设计模式的策略,适配器和观察者模式详解

    这篇文章主要为大家详细介绍了PHP设计模式的策略,适配器和观察者模式,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • PHP结合jquery ajax实现上传多张图片,并限制图片大小操作示例

    PHP结合jquery ajax实现上传多张图片,并限制图片大小操作示例

    这篇文章主要介绍了PHP结合jquery ajax实现上传多张图片,并限制图片大小操作,涉及php结合jQuery ajax文件上传及文件属性相关操作技巧,需要的朋友可以参考下
    2019-03-03
  • PHP中将数组转成XML格式的实现代码

    PHP中将数组转成XML格式的实现代码

    网上找的一段代码! 然后我自己根据php DOMDocument又写了一段代码,需要的朋友可以参考下。
    2011-08-08
  • PHP完全二叉树定义与实现方法示例

    PHP完全二叉树定义与实现方法示例

    这篇文章主要介绍了PHP完全二叉树定义与实现方法,简单描述了完全二叉树的概念并结合实例形式给出了完全二叉树的定义、节点查找、添加、设置、打印等相关操作技巧,需要的朋友可以参考下
    2017-10-10
  • php通过前序遍历树实现无需递归的无限极分类

    php通过前序遍历树实现无需递归的无限极分类

    这篇文章主要介绍了php通过前序遍历树实现无需递归的无限极分类,涉及基于CI框架针对数据库的查询与遍历操作,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • php下获取http状态的实现代码

    php下获取http状态的实现代码

    在项目开发中,有时我们需要知道远程的URL地址是否能访问正常,判断其正常与否后进行下一步的操作,那么在PHP中如何获取远程HTTP的状态呢
    2014-05-05

最新评论