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 10 PHP
2014最热门的24个php类库汇总
Dec 18 PHP
php采集内容中带有图片地址的远程图片并保存的方法
Jan 03 PHP
PHP中的闭包(匿名函数)浅析
Feb 07 PHP
php实现通用的信用卡验证类
Mar 24 PHP
php中memcache 基本操作实例
May 17 PHP
Yii2下点击验证码的切换实例代码
Mar 14 PHP
ThinkPHP下表单令牌错误与解决方法分析
May 20 PHP
PHP 实现手机端APP支付宝支付功能
Jun 07 PHP
详解PHP队列的实现
Mar 14 PHP
php + WebUploader实现图片批量上传功能
May 06 PHP
PHP 数组操作详解【遍历、指针、函数等】
May 13 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
收音机另类DIY - 纸巾盒做外壳
2021/03/02 无线电
php定时执行任务设置详解
2015/02/06 PHP
PHP实现的QQ空间g_tk加密算法
2015/07/09 PHP
ZF框架实现发送邮件的方法
2015/12/03 PHP
Laravel5.5新特性之友好报错以及展示详解
2017/08/13 PHP
js或css实现滚动广告的几种方案
2010/01/28 Javascript
JavaScript中关于indexOf的使用方法与问题小结
2010/08/05 Javascript
来自国外的页面JavaScript文件优化
2010/12/08 Javascript
jQuery1.5.1 animate方法源码阅读
2011/04/05 Javascript
js 验证密码强弱的小例子
2013/03/21 Javascript
浅谈js中的闭包
2015/03/16 Javascript
JavaScript中for循环的使用详解
2015/06/03 Javascript
js鼠标点击按钮切换图片-图片自动切换-点击左右按钮切换特效代码
2015/09/02 Javascript
jquery实现右侧栏菜单选择操作
2016/03/04 Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
2016/10/25 Javascript
jQuery实现的省市联动菜单功能示例【测试可用】
2017/01/13 Javascript
js实现鼠标拖动功能
2017/03/20 Javascript
使用JavaScript根据图片获取条形码的方法
2017/07/04 Javascript
ComboBox(下拉列表框)通过url加载调用远程数据的方法
2017/08/06 Javascript
解决layui-open关闭自身窗口的问题
2019/09/10 Javascript
微信小程序完美解决scroll-view高度自适应问题的方法
2020/08/08 Javascript
通过python+selenium3实现浏览器刷简书文章阅读量
2017/12/26 Python
Python实现破解12306图片验证码的方法分析
2017/12/29 Python
Django如何实现防止XSS攻击
2020/10/13 Python
如何用python 操作zookeeper
2020/12/28 Python
HTML5资源预加载(Link prefetch)详细介绍(给你的网页加速)
2014/05/07 HTML / CSS
英国最大的LED专业零售商:Led Hut
2018/03/16 全球购物
H&M旗下高端女装品牌:& Other Stories
2018/05/07 全球购物
新闻专业个人求职信
2013/12/19 职场文书
幼儿园实习生辞职信
2014/01/20 职场文书
档案工作汇报材料
2014/08/21 职场文书
机关职员工作检讨书
2014/10/23 职场文书
党员教师群众路线思想汇报范文
2014/10/28 职场文书
提升Nginx性能的一些建议
2021/03/31 Servers
Mysql基础知识点汇总
2021/05/26 MySQL
Java字符串逆序方法详情
2022/03/21 Java/Android