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分页显示制作详细讲解
Dec 05 PHP
php下检测字符串是否是utf8编码的代码
Jun 28 PHP
说明的比较细的php 正则学习实例
Jul 30 PHP
Joomla下利用configuration.php存储简单数据
May 19 PHP
日常整理PHP中简单的图形处理(经典)
Oct 26 PHP
thinkPHP中验证码的简单使用方法
Dec 26 PHP
php实现无限级分类查询(递归、非递归)
Mar 10 PHP
PHP 输出缓冲控制(Output Control)详解
Aug 25 PHP
详解PHP数据压缩、加解密(pack, unpack)
Dec 17 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
Oct 12 PHP
php实现的PDO异常处理操作分析
Dec 27 PHP
laravel 解决后端无法获取到前端Post过来的值问题
Oct 22 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
实用函数4
2007/11/08 PHP
PHP下通过系统信号量加锁方式获取递增序列ID
2009/09/25 PHP
使用PHP 5.0创建图形的巧妙方法
2010/10/12 PHP
php共享内存段示例分享
2014/01/20 PHP
php实现基于微信公众平台开发SDK(demo)扩展的方法
2014/12/22 PHP
PHP、Python和Javascript的装饰器模式对比
2015/02/03 PHP
php 读取输出其他文件的实现方法
2016/07/26 PHP
PHP CURL post数据报错 failed creating formpost data
2016/10/16 PHP
详解php用curl调用接口方法,get和post两种方式
2017/01/13 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
js ondocumentready onmouseover onclick onmouseout 样式
2010/07/22 Javascript
关于删除时的提示处理(确定删除吗)
2013/11/03 Javascript
jQuery链式调用与show知识浅析
2016/05/11 Javascript
js提交form表单,并传递参数的实现方法
2016/05/25 Javascript
HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
2016/05/25 Javascript
原生js实现网页顶部自动下拉/收缩广告效果
2017/01/20 Javascript
从零开始学习Node.js系列教程二:文本提交与显示方法
2017/04/13 Javascript
JavaScrpt中如何使用 cookie 设置查看与删除功能
2017/07/09 Javascript
基于vue实现分页效果
2017/11/06 Javascript
Vue-cli配置打包文件本地使用的教程图解
2018/08/02 Javascript
vue实现路由懒加载及组件懒加载的方式
2019/06/11 Javascript
koa2的中间件功能及应用示例
2020/03/05 Javascript
Python中的一些陷阱与技巧小结
2015/07/10 Python
推荐10款最受Python开发者欢迎的Python IDE
2018/09/16 Python
python之列表推导式的用法
2019/11/29 Python
CSS3中的注音对齐属性ruby-align用法指南
2016/07/01 HTML / CSS
纯CSS3实现的8种Loading动画效果
2014/07/05 HTML / CSS
html2canvas生成的图片偏移不完整的解决方法
2020/05/19 HTML / CSS
购买中国最好的电子产品:Geekbuying
2018/03/13 全球购物
prAna官网:瑜伽、旅行和冒险服装
2019/03/10 全球购物
瑞士网球商店:Tennis-Point
2020/03/12 全球购物
物理专业大学生职业生涯规划书
2014/02/07 职场文书
事业单位考核材料
2014/05/21 职场文书
基层党支部整改方案
2014/10/25 职场文书
行为习惯主题班会
2015/08/14 职场文书
Python中的套接字编程是什么?
2021/06/21 Python