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 Mssql操作简单封装支持存储过程

    Php Mssql操作简单封装支持存储过程

    没有啥太多的功能,就是简单封装,也没有缓存,平时用ezSQL,但是ezSQL不支持存储过程,所以这里封装了存储过程,因为自己的需要,只是做一个标记在这里而已。
    2009-12-12
  • PHP终止脚本运行三种实现方法详解

    PHP终止脚本运行三种实现方法详解

    这篇文章主要介绍了PHP终止脚本运行三种实现方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • PHP简单开启curl的方法(测试可行)

    PHP简单开启curl的方法(测试可行)

    这篇文章主要介绍了PHP简单开启curl的方法,较为详细的讲述了PHP开启curl函数库的具体步骤与相关注意事项,需要的朋友可以参考下
    2016-01-01
  • 用php来改写404错误页让你的页面更友好

    用php来改写404错误页让你的页面更友好

    404错误,很多人都知道,如果要访问的url不存在的时候就读取显示这个页面;以往在处理404写几行字,有心人对其稍加美化,首先我来说明一下我的404究竟都能帮我做哪些事情以及PHP如何来改写你的404错误页
    2013-01-01
  • php 禁止页面缓存输出

    php 禁止页面缓存输出

    主要设计思想就是让它在过去就“失效",防止重复提交等返回操作。
    2009-01-01
  • 关于php循环跳出的问题

    关于php循环跳出的问题

    本篇文章是对php中循环跳出的问题进行了详细的分析介绍,需要的朋友参考下
    2013-07-07
  • PHP令牌 Token改进版

    PHP令牌 Token改进版

    那个版本中,存在一个小问题,因为要做可逆加密,而加密出来的字符是不可显示字符+乱码,所以我用了 base64对其进行了处理,这样一来,就不会有乱码和不可显示字符了。
    2008-07-07
  • php 生成饼图 三维饼图

    php 生成饼图 三维饼图

    php 生成饼图 三维饼图实现代码,大家可以测试下。
    2009-09-09
  • [PHP]实用函数10

    [PHP]实用函数10

    [PHP]实用函数10...
    2007-11-11
  • win2003服务器使用WPS的COM组件的一些问题解决方法

    win2003服务器使用WPS的COM组件的一些问题解决方法

    项目中使用了新功能,gump同学研究出来的使用WPS的COM组件用PHP实现将doc等office格式转换成pdf
    2012-01-01

最新评论