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学习之数组的定义和填充
Apr 17 PHP
PHP安全配置详细说明
Sep 26 PHP
php截取后台登陆密码的代码
May 05 PHP
apache配置虚拟主机的方法详解
Jun 17 PHP
PHP父类调用子类方法的代码例子
Apr 09 PHP
php使用PDO方法详解
Dec 27 PHP
php生成图片验证码-附五种验证码
Aug 19 PHP
PHP中Enum(枚举)用法实例详解
Dec 07 PHP
docker-compose部署php项目实例详解
Jul 30 PHP
php使用pecl方式安装扩展操作示例
Aug 12 PHP
php使用redis的有序集合zset实现延迟队列应用示例
Feb 20 PHP
php swoft框架实例用法
Dec 22 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
DC动画很好看?新作烂得令人发指,名叫《红色之子》
2020/04/09 欧美动漫
PHP缓存机制Output Control详解
2014/07/14 PHP
ext combox 下拉框不出现自动提示,自动选中的解决方法
2010/02/24 Javascript
Jquery动态改变图片IMG的src地址示例
2013/06/25 Javascript
鼠标移到div,浮层显示明细,弹出层与div的上边距左边距重合(示例代码)
2013/12/14 Javascript
Javascript学习指南
2014/12/01 Javascript
jQuery实现向下滑出的二级菜单效果实例
2015/08/22 Javascript
JS实现1000以内被3或5整除的数字之和
2016/02/18 Javascript
jQuery qrcode生成二维码的方法
2016/04/03 Javascript
JQuery的attr 与 val区别
2016/06/12 Javascript
用AngularJS来实现监察表单按钮的禁用效果
2016/11/02 Javascript
react native与webview通信的示例代码
2017/09/25 Javascript
template.js前端模板引擎使用详解
2017/10/10 Javascript
vue.js数据绑定操作详解
2018/04/23 Javascript
Koa2微信公众号开发之本地开发调试环境搭建
2018/05/16 Javascript
JS实现数组去重及数组内对象去重功能示例
2019/02/02 Javascript
深入浅析Vue中mixin和extend的区别和使用场景
2019/08/01 Javascript
layer页面跳转,获取html子节点元素的值方法
2019/09/27 Javascript
vue分页插件的使用方法
2019/12/25 Javascript
[57:16]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第二场
2014/05/26 DOTA
python在命令行下使用google翻译(带语音)
2014/01/16 Python
Python 实现链表实例代码
2017/04/07 Python
Python第三方库face_recognition在windows上的安装过程
2019/05/03 Python
Python3.0 实现决策树算法的流程
2019/08/08 Python
Python 列表推导式需要注意的地方
2020/10/23 Python
利用CSS3伪元素实现逐渐发光的方格边框
2017/05/07 HTML / CSS
html5使用canvas实现图片下载功能的示例代码
2017/08/26 HTML / CSS
面向游戏玩家和书呆子的极客订阅盒:Loot Crate
2020/11/25 全球购物
北承题目(C++)
2012/05/16 面试题
在什么时候需要使用"常引用"
2015/12/31 面试题
销售顾问的岗位职责
2013/11/13 职场文书
群众路线个人对照检查材料2014
2014/09/26 职场文书
迎新生晚会主持词
2015/06/30 职场文书
导游词之河北邯郸
2019/09/12 职场文书
Pytorch 如何加速Dataloader提升数据读取速度
2021/05/28 Python
Go中使用gjson来操作JSON数据的实现
2022/08/14 Golang