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 相关文章推荐
基于mysql的bbs设计(一)
Oct 09 PHP
刚才在简化php的库,结果发现很多东西
Dec 31 PHP
PHPMailer安装方法及简单实例
Nov 25 PHP
深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)
Feb 06 PHP
解析php入库和出库
Jun 25 PHP
CodeIgniter基本配置详细介绍
Nov 12 PHP
PHP实现的简单三角形、矩形周长面积计算器分享
Nov 18 PHP
php实现高效获取图片尺寸的方法
Dec 12 PHP
php显示时间常用方法小结
Jun 05 PHP
PHP使用Pear发送邮件(Windows环境)
Jan 05 PHP
PHP实现在对象之外访问其私有属性private及保护属性protected的方法
Nov 20 PHP
php实现通过stomp协议连接ActiveMQ操作示例
Feb 23 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
如何提高MYSQL数据库的查询统计速度 select 索引应用
2007/04/11 PHP
php中10个不同等级压缩优化图片操作示例
2016/11/14 PHP
PHP实现Unicode编码相互转换的方法示例
2020/11/17 PHP
PHP设计模式之原型模式定义与用法详解
2018/04/03 PHP
PHP实现可精确验证身份证号码的工具类示例
2018/05/31 PHP
php图片裁剪函数
2018/10/31 PHP
Js+Dhtml:WEB程序员简易开发工具包(预先体验版)
2006/11/07 Javascript
JavaScript 字符编码规则
2009/05/04 Javascript
JS中的form.submit()不能提交表单的错误原因
2014/10/08 Javascript
js正则匹配出所有图片及图片地址src的方法
2015/06/08 Javascript
AngularJS实现表单手动验证和表单自动验证
2015/12/09 Javascript
BootStrap 智能表单实战系列(二)BootStrap支持的类型简介
2016/06/13 Javascript
Vue.js:使用Vue-Router 2实现路由功能介绍
2017/02/22 Javascript
详解react使用react-bootstrap当轮子造车
2017/08/15 Javascript
React Native中的RefreshContorl下拉刷新使用
2017/10/09 Javascript
JS实现获取汉字首字母拼音、全拼音及混拼音的方法
2017/11/14 Javascript
js实现rem自动匹配计算font-size的示例
2017/11/18 Javascript
深入浅析js原型链和vue构造函数
2018/10/25 Javascript
vue-for循环嵌套操作示例
2019/01/28 Javascript
vue input实现点击按钮文字增删功能示例
2019/01/29 Javascript
Layui Form 自定义验证的实例代码
2019/09/14 Javascript
JavaScript实现Excel表格效果
2020/02/07 Javascript
[01:14:34]DOTA2上海特级锦标赛C组资格赛#2 LGD VS Newbee第一局
2016/02/28 DOTA
在Python中操作字符串之replace()方法的使用
2015/05/19 Python
python如何修改装饰器中参数
2018/03/20 Python
Python文件路径名的操作方法
2019/10/30 Python
使用Python通过oBIX协议访问Niagara数据的示例
2020/12/04 Python
银行自荐信范文
2013/10/07 职场文书
求职简历中的自我评价分享
2013/12/08 职场文书
春节晚会主持词
2014/03/24 职场文书
小学生寒假家长评语
2014/04/16 职场文书
中职三好学生事迹材料
2014/08/24 职场文书
教师个人师德总结
2015/02/06 职场文书
导游词之镇江西津古渡
2019/11/06 职场文书
导游词之包公祠
2019/11/25 职场文书
20180830晚上第一届KSL半决赛 雨神vs解冻(二龙 三炮解说)
2022/04/01 星际争霸