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 相关文章推荐
在VS2008中编译MYSQL5.1.48的方法
Jul 03 PHP
php正则过滤html标签、空格、换行符的代码(附说明)
Oct 25 PHP
php设计模式 Singleton(单例模式)
Jun 26 PHP
基于php伪静态的实现详细介绍
Apr 28 PHP
Yii 快速,安全,专业的PHP框架
Sep 03 PHP
推荐几个开源的微信开发项目
Dec 28 PHP
php如何控制用户对图片的访问 PHP禁止图片盗链
Mar 25 PHP
php中foreach结合curl实现多线程的方法分析
Sep 22 PHP
php加密解密字符串示例
Oct 13 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
Dec 25 PHP
PHP全功能无变形图片裁剪操作类与用法示例
Jan 10 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
Nov 14 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
DC动画很好看?新作烂得令人发指,名叫《红色之子》
2020/04/09 欧美动漫
PHP中3种生成XML文件方法的速度效率比较
2012/10/06 PHP
PHP区块查询实现方法分析
2018/05/12 PHP
一个简单的js鼠标划过切换效果
2010/06/30 Javascript
JavaScript window.document的属性、方法和事件小结
2012/10/24 Javascript
Jquery实现自定义tooltip示例代码
2014/02/12 Javascript
javascript 中__proto__和prototype详解
2014/11/25 Javascript
JavaScript和CSS交互的方法汇总
2014/12/02 Javascript
jQuery仿淘宝网产品品牌隐藏与显示效果
2015/09/01 Javascript
Ionic3 UI组件之Gallery Modal详解
2017/06/07 Javascript
JQuery EasyUI的一些常用组件
2017/07/12 jQuery
详解angular如何调用HTML字符串的方法
2018/06/30 Javascript
vue前端框架—Mint UI详解(更适用于移动端)
2019/04/30 Javascript
Node.js安装详细步骤教程(Windows版)详解
2019/09/01 Javascript
VUE兄弟组件传值操作实例分析
2019/10/26 Javascript
js实现无缝轮播图效果
2020/03/09 Javascript
JavaScript设计模式---单例模式详解【四种基本形式】
2020/05/16 Javascript
通过实例解析json与jsonp原理及使用方法
2020/09/27 Javascript
[05:06]DOTA2-DPC中国联赛 正赛 VG vs Magma选手采访
2021/03/11 DOTA
python统计cpu利用率的方法
2015/06/02 Python
python 二分查找和快速排序实例详解
2017/10/13 Python
浅谈python3发送post请求参数为空的情况
2018/12/28 Python
关于python下cv.waitKey无响应的原因及解决方法
2019/01/10 Python
Python绘图Matplotlib之坐标轴及刻度总结
2019/06/28 Python
python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
2019/08/27 Python
python异常处理和日志处理方式
2019/12/24 Python
基于TensorFlow常量、序列以及随机值生成实例
2020/01/04 Python
使用Python实现Wake On Lan远程开机功能
2020/01/22 Python
python爬虫开发之Beautiful Soup模块从安装到详细使用方法与实例
2020/03/09 Python
css3的过滤效果简单实例
2016/08/03 HTML / CSS
类和结构的区别
2012/08/15 面试题
护理专业自荐信
2013/12/03 职场文书
电子信息科学专业自荐信
2014/01/30 职场文书
我的理想演讲稿
2014/04/30 职场文书
督导岗位职责范本
2015/04/10 职场文书
python办公自动化之excel的操作
2021/05/23 Python