PHP 获取客户端真实IP地址多种方法小结


Posted in PHP onMay 15, 2010

经过复杂的判断与算是的获取IP地址函数

function getIP() { 
if (getenv('HTTP_CLIENT_IP')) { 
$ip = getenv('HTTP_CLIENT_IP'); 
} 
elseif (getenv('HTTP_X_FORWARDED_FOR')) { 
$ip = getenv('HTTP_X_FORWARDED_FOR'); 
} 
elseif (getenv('HTTP_X_FORWARDED')) { 
$ip = getenv('HTTP_X_FORWARDED'); 
} 
elseif (getenv('HTTP_FORWARDED_FOR')) { 
$ip = getenv('HTTP_FORWARDED_FOR'); } 
elseif (getenv('HTTP_FORWARDED')) { 
$ip = getenv('HTTP_FORWARDED'); 
} 
else { 
$ip = $_SERVER['REMOTE_ADDR']; 
} 
return $ip; 
}

最简单获取ip地址代码一句实例
$reIP=$_SERVER["REMOTE_ADDR"]; 
echo $reIP;

php获取ip的算法
if(getenv('HTTP_CLIENT_IP')) { 
$onlineip = getenv('HTTP_CLIENT_IP'); 
} elseif(getenv('HTTP_X_FORWARDED_FOR')) { 
$onlineip = getenv('HTTP_X_FORWARDED_FOR'); 
} elseif(getenv('REMOTE_ADDR')) { 
$onlineip = getenv('REMOTE_ADDR'); 
} else { 
$onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR']; 
} 
echo $onlineip;

可以分出内网与外网站ip地址获取程序
function getip_out(){ 
$ip=false; 
if(!empty($_SERVER["HTTP_CLIENT_IP"])){ 
$ip = $_SERVER["HTTP_CLIENT_IP"]; 
} 
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { 
$ips教程 = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']); 
if ($ip) { array_unshift($ips, $ip); $ip = FALSE; } 
for ($i = 0; $i < count($ips); $i++) { 
if (!eregi ("^(10│172.16│192.168).", $ips[$i])) { 
$ip = $ips[$i]; 
break; 
} 
} 
} 
return ($ip ? $ip : $_SERVER['REMOTE_ADDR']); 
} 
echo getip_out();

php获取ip的算法,用了?号表达式来处理
$user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"]; 
$user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];

php下获取客户端ip地址的函数
php 获取客户端的真实ip
PHP 相关文章推荐
phpwind中的数据库操作类
Jan 02 PHP
PHP数组无限分级数据的层级化处理代码
Dec 29 PHP
php中如何防止表单的重复提交
Aug 02 PHP
PHP实现显示照片exif信息的方法
Jul 11 PHP
php post大量数据时发现数据丢失问题解决方法
Jun 20 PHP
php通过curl添加cookie伪造登陆抓取数据的方法
Apr 02 PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
May 29 PHP
PHP基于SimpleXML生成和解析xml的方法示例
Jul 17 PHP
浅谈PHP中的Trait使用方法
Mar 22 PHP
Yii2框架操作数据库的方法分析【以mysql为例】
May 27 PHP
laravel框架数据库配置及操作数据库示例
Oct 10 PHP
Laravel 在views中加载公共页面的实现代码
Oct 22 PHP
PHP生成UTF8文件的方法
May 15 #PHP
PHP 魔术函数使用说明
May 14 #PHP
PHP 事务处理数据实现代码
May 13 #PHP
php 常用类汇总 推荐收藏
May 13 #PHP
php echo 输出字符串函数详解
May 13 #PHP
php 图片加水印与上传图片加水印php类
May 12 #PHP
php access 数据连接与读取保存编辑数据的实现代码
May 12 #PHP
You might like
php实现首页链接查询 友情链接检查的代码
2010/01/05 PHP
php mail to 配置详解
2014/01/16 PHP
php使用pdo连接并查询sql数据库的方法
2014/12/24 PHP
php防止CC攻击代码 php防止网页频繁刷新
2015/12/21 PHP
Zend Framework入门教程之Zend_View组件用法示例
2016/12/09 PHP
Laravel学习教程之model validation的使用示例
2017/10/23 PHP
javascript 多浏览器 事件大全
2010/03/23 Javascript
Javascript 自适应高度的Tab选项卡
2011/04/05 Javascript
jquery 简短几句代码实现给元素动态添加及获取提示信息
2011/09/01 Javascript
JQuery简单实现锚点链接的平滑滚动
2015/05/03 Javascript
jQuery实现图片文字淡入淡出效果
2015/12/21 Javascript
jQuery判断浏览器并动态调整select宽度的方法
2016/03/02 Javascript
Angular-Touch库用法示例
2016/12/22 Javascript
你不知道的 javascript【推荐】
2017/01/08 Javascript
nodejs集成sqlite使用示例
2017/06/05 NodeJs
详解node单线程实现高并发原理与node异步I/O
2017/09/21 Javascript
vue框架下部署上线后刷新报404问题的解决方案(推荐)
2019/04/03 Javascript
在Vue项目中使用snapshot测试的具体使用
2019/04/16 Javascript
详解webpack的文件监听实现(热更新)
2020/09/11 Javascript
解决vue-cli输入命令vue ui没效果的问题
2020/11/17 Javascript
[01:02:20]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
[01:21:36]CHAOS vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python设计模式之观察者模式实例
2014/04/26 Python
Python中运算符&quot;==&quot;和&quot;is&quot;的详解
2016/10/08 Python
Python解析并读取PDF文件内容的方法
2018/05/08 Python
Python ATM功能实现代码实例
2020/03/19 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
2020/04/03 Python
python PyAUtoGUI库实现自动化控制鼠标键盘
2020/09/09 Python
EJB3.1都有哪些改进
2012/11/17 面试题
初三物理教学反思
2014/01/21 职场文书
最新奶茶店创业计划书范文
2014/02/08 职场文书
十佳护士获奖感言
2014/02/18 职场文书
公司领导班子群众路线四风问题对照检查材料
2014/10/02 职场文书
防灾减灾宣传标语
2014/10/07 职场文书
公司员工安全协议书
2014/11/21 职场文书
SpringBoot整合JWT的入门指南
2021/06/29 Java/Android