php下获取客户端ip地址的函数


Posted in PHP onMarch 15, 2010
function getip() { 
$IP=getenv('REMOTE_ADDR'); 
$IP_ = getenv('HTTP_X_FORWARDED_FOR'); 
if (($IP_ != "") && ($IP_ != "unknown")) $IP=$IP_; 
return $IP; 
}

下面这个比较好的
function getIP() 
{ 
if (isset($_SERVER)) { 
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { 
$realip = $_SERVER['HTTP_X_FORWARDED_FOR']; 
} elseif (isset($_SERVER['HTTP_CLIENT_IP'])) { 
$realip = $_SERVER['HTTP_CLIENT_IP']; 
} else { 
$realip = $_SERVER['REMOTE_ADDR']; 
} 
} else { 
if (getenv("HTTP_X_FORWARDED_FOR")) { 
$realip = getenv( "HTTP_X_FORWARDED_FOR"); 
} elseif (getenv("HTTP_CLIENT_IP")) { 
$realip = getenv("HTTP_CLIENT_IP"); 
} else { 
$realip = getenv("REMOTE_ADDR"); 
} 
} 
return $realip; 
}
PHP 相关文章推荐
php MySQL与分页效率
Jun 04 PHP
yii框架builder、update、delete使用方法
Apr 30 PHP
PHP程序员基本要求和必备技能
May 09 PHP
php把数据表导出为Excel表的最简单、最快的方法(不用插件)
May 10 PHP
PHP根据两点间的经纬度计算距离
Oct 31 PHP
JSON用法之将PHP数组转JS数组,JS如何接收PHP数组
Oct 08 PHP
php使用正则表达式获取字符串中的URL
Dec 29 PHP
PHP实现基于回溯法求解迷宫问题的方法详解
Aug 17 PHP
PHP中str_split()函数的用法讲解
Apr 11 PHP
Laravel 模型关联基础教程详解
Sep 17 PHP
Thinkphp页面跳转设置跳转等待时间的操作
Oct 16 PHP
聊聊 PHP 8 新特性 Attributes
Aug 19 PHP
PHP 模拟$_PUT实现代码
Mar 15 #PHP
php Xdebug 调试扩展的安装与使用.
Mar 13 #PHP
php5 non-thread-safe和thread-safe这两个版本的区别分析
Mar 13 #PHP
php 无法载入mysql扩展
Mar 12 #PHP
PHP生成Flash动画的实现代码
Mar 12 #PHP
PHP 引用是个坏习惯
Mar 12 #PHP
PHP 页面编码声明方法详解(header或meta)
Mar 12 #PHP
You might like
Dedecms常用函数解析
2008/02/01 PHP
php 获取可变函数参数的函数
2009/08/26 PHP
VIM中设置php自动缩进为4个空格的方法详解
2013/06/14 PHP
PHP随机字符串生成代码(包括大小写字母)
2013/06/24 PHP
浅析PHP绘图技术
2013/07/03 PHP
Javascript var变量隐式声明方法
2009/10/19 Javascript
10分钟学会写Jquery插件实例教程
2014/09/06 Javascript
jQuery实现设置、移除文本框默认值功能
2015/01/13 Javascript
把Node.js程序加入服务实现随机启动
2015/06/25 Javascript
JavaScript String 对象常用方法详解
2016/05/13 Javascript
jquery树形菜单效果的简单实例
2016/06/06 Javascript
node.js请求HTTPS报错:UNABLE_TO_VERIFY_LEAF_SIGNATURE\的解决方法
2016/12/18 Javascript
vue实现留言板todolist功能
2017/08/16 Javascript
Vue集成Iframe页面的方法示例
2017/12/12 Javascript
Vue 中使用vue2-highcharts实现曲线数据展示的方法
2018/03/05 Javascript
微信小程序判断用户是否需要再次授权获取个人信息
2019/07/18 Javascript
vue 中 elment-ui table合并上下两行相同数据单元格
2019/12/26 Javascript
vue-iview动态新增和删除的方法
2020/06/17 Javascript
浅谈Django自定义模板标签template_tags的用处
2017/12/20 Python
python 字典中取值的两种方法小结
2018/08/02 Python
配置 Pycharm 默认 Test runner 的图文教程
2018/11/30 Python
Pygame框架实现飞机大战
2020/08/07 Python
啤酒销售实习自我鉴定
2013/09/24 职场文书
自荐信怎么写呢?
2013/12/09 职场文书
投标承诺书范本
2014/03/27 职场文书
公司新年寄语
2014/04/04 职场文书
国旗下的讲话演讲稿
2014/05/08 职场文书
运动会方阵口号
2014/06/07 职场文书
2014年外联部工作总结
2014/11/17 职场文书
2014年连锁店圣诞节活动方案
2014/12/09 职场文书
申报材料格式
2014/12/30 职场文书
高三复习计划
2015/01/19 职场文书
滴水洞导游词
2015/02/10 职场文书
MySQL update set 和 and的区别
2021/05/08 MySQL
MySQL中order by的使用详情
2021/11/17 MySQL
基于Redis zSet实现滑动窗口对短信进行防刷限流的问题
2022/02/12 Redis