thinkphp如何获取客户端IP


Posted in PHP onNovember 03, 2015

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 相关文章推荐
PHP 加密与解密的斗争
Apr 17 PHP
PHP使用Mysql事务实例解析
Sep 08 PHP
php获取文章上一页与下一页的方法
Dec 01 PHP
php输入数据统一类实例
Feb 23 PHP
PHP滚动日志的代码实现
Jun 10 PHP
CI框架常用方法小结
May 17 PHP
PHP实现上传多文件示例代码
Feb 20 PHP
thinkphp 验证码 的使用小结
May 07 PHP
PHP实现数组向任意位置插入,删除,替换数据操作示例
Apr 05 PHP
PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解
Jun 03 PHP
php反射学习之不用new方法实例化类操作示例
Jun 14 PHP
PHP语言对接抖音快手小红书视频/图片去水印API接口源码
Aug 11 PHP
php去除二维数组的重复项方法
Nov 03 #PHP
php在数据库抽象层简单使用PDO的方法
Nov 03 #PHP
smarty简单应用实例
Nov 03 #PHP
详解PHP+AJAX无刷新分页实现方法
Nov 03 #PHP
php获取远程文件的内容和大小
Nov 03 #PHP
php获取远程文件内容的函数
Nov 02 #PHP
php+ajax实现无刷新数据分页的办法
Nov 02 #PHP
You might like
phpmyadmin 访问被拒绝的真实原因
2009/06/15 PHP
PHP 处理图片的类实现代码
2009/10/23 PHP
php+js实现异步图片上传实例分享
2014/06/02 PHP
php计算2个日期的差值函数分享
2015/02/02 PHP
详解WordPress中过滤链接与过滤SQL语句的方法
2015/12/18 PHP
PHP验证码生成原理和实现
2016/01/24 PHP
php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法
2016/10/12 PHP
js获得鼠标的坐标值的方法
2013/03/13 Javascript
JavaScript判断IE版本型号
2015/07/27 Javascript
Node.js配合node-http-proxy解决本地开发ajax跨域问题
2016/08/31 Javascript
老生常谈angularjs中的$state.go
2017/04/24 Javascript
BootStrap的两种模态框方式
2017/05/10 Javascript
vue this.reload 方法 配置
2018/09/12 Javascript
layui使用templet格式化表格数据的方法
2019/09/16 Javascript
原生js+css实现tab切换功能
2020/09/17 Javascript
[01:03:41]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第三场 2月2日
2021/03/11 DOTA
python3简单实现微信爬虫
2015/04/09 Python
在Python的Django框架中生成CSV文件的方法
2015/07/22 Python
Python中二维列表如何获取子区域元素的组成
2017/01/19 Python
Python的标准模块包json详解
2017/03/13 Python
Python元组及文件核心对象类型详解
2018/02/11 Python
Python 读取某个目录下所有的文件实例
2018/06/23 Python
分享vim python缩进等一些配置
2018/07/02 Python
基于pandas将类别属性转化为数值属性的方法
2018/07/25 Python
Numpy截取指定范围内的数据方法
2018/11/14 Python
django中间键重定向实例方法
2019/11/10 Python
介绍一下sql server的安全性
2014/08/10 面试题
MYSQL支持事务吗
2013/08/09 面试题
秘书英文求职信
2014/04/16 职场文书
高一学生评语大全
2014/04/25 职场文书
教师年度考核评语
2014/04/28 职场文书
上海世博会志愿者口号
2014/06/17 职场文书
机械设计制造及其自动化专业求职信
2014/06/17 职场文书
泸县召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
开展党的群众路线教育实践活动个人对照检查材料
2014/11/05 职场文书
只需要这一行代码就能让python计算速度提高十倍
2021/05/24 Python