php获取真实ip地址原理及实现
2012-07-26 00:00
441 查看
看了很多其他网站关于php获取ip地址的php教程,都没给与下面三个变量的解释:
1、HTTP_X_FORWARDED_FOR 是用户到达最终访问地时经过的路径访问点(包括自身和使用的多层代理)的IP列表。依然取决于代理的设置,可通过http头伪造
2、HTTP_CLIENT_IP 是代理服务器设置发送的HTTP头,代表你的客户端的真实IP。当然,人家可以选择设置与否以及设置成什么样。可通过http头伪造
3、REMOTE_ADDR 是你的客户端跟服务器“握手”时候的IP。如果使用代理,REMOTE_ADDR将显示代理服务器的IP。可能是用户真实IP也可能是代理IP
获取ip地址的两个方法:
1.超级全局变量$_SERVER['']
2getenv()函数获取环境变量的值。(注意这个函数不支持IIS下的php)
废话少说,附上php代码:
1、HTTP_X_FORWARDED_FOR 是用户到达最终访问地时经过的路径访问点(包括自身和使用的多层代理)的IP列表。依然取决于代理的设置,可通过http头伪造
2、HTTP_CLIENT_IP 是代理服务器设置发送的HTTP头,代表你的客户端的真实IP。当然,人家可以选择设置与否以及设置成什么样。可通过http头伪造
3、REMOTE_ADDR 是你的客户端跟服务器“握手”时候的IP。如果使用代理,REMOTE_ADDR将显示代理服务器的IP。可能是用户真实IP也可能是代理IP
获取ip地址的两个方法:
1.超级全局变量$_SERVER['']
2getenv()函数获取环境变量的值。(注意这个函数不支持IIS下的php)
废话少说,附上php代码:
<?php function get_real_ip(){ if(getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknow")){ $ip = getenv("HTTP_CLIENT_IP"); }else if(getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknow")){ $ip = getenv("HTTP_X_FORWARDED_FOR"); }else if(getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknow")){ $ip = getenv("REMOTE_ADDR"); }else if(isset($_SERVER["REMOTE_ADDR"]) && $_SERVER["REMOTE_ADDR"] && strcasecmp($_SERVER["REMOTE_ADDR"],"unknow")){ $ip = $_SERVER["REMOTE_ADDR"]; }else{ $ip = "unknow"; } return $ip; } echo get_real_ip(); ?>
相关文章推荐
- php获取真实ip地址原理及实现
- php获取真实ip地址原理及实现
- PHP获取客户端真实IP地址的5种情况分析和实现代码
- PHP获取真实IP地址方法及原理
- PHP获取客户端真实IP地址的5种情况分析和实现代码
- PHP获取用户的真实IP地址
- PHP 获取客户端真实的ip地址
- php实现根据IP地址获取其所在省市的方法
- PHP获取用户的用户的真实IP地址(转)
- PHP 实现获取服务器端IP地址
- php根据汉字获取拼音(php基于拼音搜索实现原理)
- php获取客户端真实IP地址新浪淘宝接口
- php实现获取IP地址归属地
- php获取用户(客户端)真实IP地址的三种方法
- PHP根据IP地址获取所在城市具体实现
- 基于PHP实现通过照片获取ip地址
- 基于PHP实现通过照片获取ip地址
- php中获取远程客户端的真实ip地址
- php 获取真实IP地址
- php 获取客户端的真实ip地址 通过第三方网站