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项目打包方法
Feb 18 PHP
php 进度条实现代码
Mar 10 PHP
php UTF8 文件的签名问题
Oct 30 PHP
ionCube 一款类似zend的PHP加密/解密工具
Jul 25 PHP
PHP读取文件并可支持远程文件的代码分享
Oct 03 PHP
destoon整合UCenter图文教程
Jun 21 PHP
PHP链接MySQL的常用扩展函数
Oct 23 PHP
详谈PHP编码转换问题
Jul 28 PHP
ThinkPHP在Cli模式下使用模板引擎的方法
Sep 25 PHP
提交表单后 PHP获取提交内容的实现方法
May 25 PHP
ThinkPHP5.0 图片上传生成缩略图实例代码说明
Jun 20 PHP
php代码调试利器firephp安装与使用方法分析
Aug 21 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
php常用的安全过滤函数集锦
2014/10/09 PHP
PHP+jQuery实现双击修改table表格功能示例
2019/02/21 PHP
Thinkphp5框架中引入Markdown编辑器操作示例
2020/06/03 PHP
过虑特殊字符输入的js代码
2010/08/05 Javascript
JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题
2010/08/12 Javascript
javascript setinterval 的正确语法如何书写
2014/06/17 Javascript
jquery插件corner实现圆角边框的方法
2015/03/09 Javascript
javascript单例模式的简单实现方法
2015/07/25 Javascript
基于jquery实现下拉框美化特效
2016/02/02 Javascript
微信小程序 欢迎界面开发的实例详解
2016/11/30 Javascript
本地存储localStorage用法详解
2017/07/31 Javascript
JS与HTML结合实现流程进度展示条思路详解
2017/09/03 Javascript
vue使用$emit时,父组件无法监听到子组件的事件实例
2018/02/26 Javascript
Vue表单demo v-model双向绑定问题
2018/06/29 Javascript
Element-UI踩坑之Pagination组件的使用
2018/10/29 Javascript
使用js原生实现年份轮播选择效果实例
2021/01/12 Javascript
python检测lvs real server状态
2014/01/22 Python
python高手之路python处理excel文件(方法汇总)
2016/01/07 Python
Python中的id()函数指的什么
2017/10/17 Python
Python数据处理numpy.median的实例讲解
2018/04/02 Python
python实现判断一个字符串是否是合法IP地址的示例
2018/06/04 Python
python计算两个地址之间的距离方法
2018/06/09 Python
对Python中内置异常层次结构详解
2018/10/18 Python
python生成器与迭代器详解
2019/01/01 Python
十个Python练手的实战项目,学会这些Python就基本没问题了(推荐)
2019/04/26 Python
Python flask框架post接口调用示例
2019/07/03 Python
Pytorch - TORCH.NN.INIT 参数初始化的操作
2021/02/27 Python
html5中canvas学习笔记2-判断浏览器是否支持canvas
2013/01/06 HTML / CSS
英国手机壳购买网站:Case Hut
2019/04/11 全球购物
教师实习期自我鉴定
2013/10/06 职场文书
技校教师求职简历的自我评价
2013/10/20 职场文书
安全施工标语
2014/06/07 职场文书
普通党员个人对照检查材料
2014/09/18 职场文书
批评与自我批评总结
2014/10/17 职场文书
研讨会致辞
2015/07/31 职场文书
pytorch 实现在测试的时候启用dropout
2021/05/27 Python