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 相关文章推荐
Windows下PHP的任意文件执行漏洞
Oct 09 PHP
PHP 开源AJAX框架14种
Aug 24 PHP
PHP递归返回值时出现的问题解决办法
Feb 19 PHP
ThinkPHP的I方法使用详解
Jun 18 PHP
jQuery+PHP+ajax实现微博加载更多内容列表功能
Jun 27 PHP
php压缩和解压缩字符串的方法
Mar 14 PHP
PHP版本如何选择?应该使用哪个版本?
May 13 PHP
php防止用户重复提交表单
Nov 02 PHP
详解PHP匿名函数与注意事项
Mar 29 PHP
thinkphp中的url跳转用法分析
Jul 12 PHP
PHP使用curl制作简易百度搜索
Nov 03 PHP
laravel 配置路由 api和web定义的路由的区别详解
Sep 03 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
php配置php-fpm启动参数及配置详解
2013/11/04 PHP
Yii实现MySQL多数据库和读写分离实例分析
2014/12/03 PHP
php简单smarty入门程序实例
2015/06/11 PHP
PHP中使用curl入门教程
2015/07/02 PHP
学习php设计模式 php实现工厂模式(factory)
2015/12/07 PHP
php生成二维码图片方法汇总
2016/12/17 PHP
ThinkPHP 3.2.2实现事务操作的方法
2017/05/05 PHP
PHP使用数组实现矩阵数学运算的方法示例
2017/05/29 PHP
GreyBox技术总结(转)
2010/11/23 Javascript
js使用函数绑定技术改变事件处理程序的作用域
2011/12/26 Javascript
ExtJS4 Grid改变单元格背景颜色及Column render学习
2013/02/06 Javascript
js点击列表文字对应该行显示背景颜色的实现代码
2015/08/05 Javascript
Angularjs 实现分页功能及示例代码
2016/09/14 Javascript
jQuery异步提交表单实例
2017/05/30 jQuery
react redux入门示例
2018/04/19 Javascript
JavaScript 性能提升之路(推荐)
2019/04/10 Javascript
vue视图不更新情况详解
2019/05/16 Javascript
[00:17]DOTA2荣耀之路5:It’s a disastah!
2018/05/28 DOTA
Python获取当前时间的方法
2014/01/14 Python
解析Python中的__getitem__专有方法
2016/06/27 Python
python dataframe 输出结果整行显示的方法
2018/06/14 Python
使用numpy和PIL进行简单的图像处理方法
2018/07/02 Python
详解Python3 pickle模块用法
2019/09/16 Python
基于Python实现人脸自动戴口罩系统
2020/02/06 Python
浅谈JupyterNotebook导出pdf解决中文的问题
2020/04/22 Python
Python3爬虫里关于代理的设置总结
2020/07/30 Python
高中生毕业自我鉴定
2013/10/10 职场文书
启动仪式策划方案
2014/06/14 职场文书
酒店采购员岗位职责
2015/04/03 职场文书
大学生,三分钟即兴演讲稿
2019/07/22 职场文书
优秀范文:《但愿人长久》教学反思3篇
2019/10/24 职场文书
Ajax常用封装库——Axios的使用
2021/05/08 Javascript
MySQL Shell import_table数据导入的实现
2021/08/07 MySQL
idea以任意顺序debug多线程程序的具体用法
2021/08/30 Java/Android
排查并解决MySQL生产库内存使用率高的报警
2022/04/11 MySQL
vue选项卡切换的实现案例
2022/04/11 Vue.js