- 浏览: 90559 次
- 性别:
- 来自: 深圳
文章分类
最新评论
REMOTE_ADDR 是你的客户端跟你的服务器“握手”时候的IP。如果使用了“匿名代理”,REMOTE_ADDR将显示代理服务器的IP。
HTTP_CLIENT_IP 是代理服务器发送的HTTP头。如果是“超级匿名代理”,则返回none值。同样,REMOTE_ADDR也会被替换为这个代理服务器的IP。
$_SERVER['REMOTE_ADDR']; //访问端(有可能是用户,有可能是代理的)IP
$_SERVER['HTTP_CLIENT_IP']; //代理端的(有可能存在,可伪造)
$_SERVER['HTTP_X_FORWARDED_FOR']; //用户是在哪个IP使用的代理(有可能存在,也可以伪造)
三个值区别如下:
一、没有使用代理服务器的情况:
REMOTE_ADDR = 您的 IP
HTTP_VIA = 没数值或不显示
HTTP_X_FORWARDED_FOR = 没数值或不显示
二、使用透明代理服务器的情况:Transparent Proxies
REMOTE_ADDR = 最后一个代理服务器 IP
HTTP_VIA = 代理服务器 IP
HTTP_X_FORWARDED_FOR = 您的真实 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。
这类代理服务器还是将您的信息转发给您的访问对象,无法达到隐藏真实身份的目的。
三、使用普通匿名代理服务器的情况:Anonymous Proxies
REMOTE_ADDR = 最后一个代理服务器 IP
HTTP_VIA = 代理服务器 IP
HTTP_X_FORWARDED_FOR = 代理服务器 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。
隐藏了您的真实IP,但是向访问对象透露了您是使用代理服务器访问他们的。
四、使用欺骗性代理服务器的情况:Distorting Proxies
REMOTE_ADDR = 代理服务器 IP
HTTP_VIA = 代理服务器 IP
HTTP_X_FORWARDED_FOR = 随机的 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。
告诉了访问对象您使用了代理服务器,但编造了一个虚假的随机IP代替您的真实IP欺骗它。
五、使用高匿名代理服务器的情况:High Anonymity Proxies (Elite proxies)
REMOTE_ADDR = 代理服务器 IP
HTTP_VIA = 没数值或不显示
HTTP_X_FORWARDED_FOR = 没数值或不显示 ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。
完全用代理服务器的信息替代了您的所有信息,就象您就是完全使用那台代理服务器直接访问对象。
//获取用户IP
HTTP_CLIENT_IP 是代理服务器发送的HTTP头。如果是“超级匿名代理”,则返回none值。同样,REMOTE_ADDR也会被替换为这个代理服务器的IP。
$_SERVER['REMOTE_ADDR']; //访问端(有可能是用户,有可能是代理的)IP
$_SERVER['HTTP_CLIENT_IP']; //代理端的(有可能存在,可伪造)
$_SERVER['HTTP_X_FORWARDED_FOR']; //用户是在哪个IP使用的代理(有可能存在,也可以伪造)
三个值区别如下:
一、没有使用代理服务器的情况:
REMOTE_ADDR = 您的 IP
HTTP_VIA = 没数值或不显示
HTTP_X_FORWARDED_FOR = 没数值或不显示
二、使用透明代理服务器的情况:Transparent Proxies
REMOTE_ADDR = 最后一个代理服务器 IP
HTTP_VIA = 代理服务器 IP
HTTP_X_FORWARDED_FOR = 您的真实 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。
这类代理服务器还是将您的信息转发给您的访问对象,无法达到隐藏真实身份的目的。
三、使用普通匿名代理服务器的情况:Anonymous Proxies
REMOTE_ADDR = 最后一个代理服务器 IP
HTTP_VIA = 代理服务器 IP
HTTP_X_FORWARDED_FOR = 代理服务器 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。
隐藏了您的真实IP,但是向访问对象透露了您是使用代理服务器访问他们的。
四、使用欺骗性代理服务器的情况:Distorting Proxies
REMOTE_ADDR = 代理服务器 IP
HTTP_VIA = 代理服务器 IP
HTTP_X_FORWARDED_FOR = 随机的 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。
告诉了访问对象您使用了代理服务器,但编造了一个虚假的随机IP代替您的真实IP欺骗它。
五、使用高匿名代理服务器的情况:High Anonymity Proxies (Elite proxies)
REMOTE_ADDR = 代理服务器 IP
HTTP_VIA = 没数值或不显示
HTTP_X_FORWARDED_FOR = 没数值或不显示 ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。
完全用代理服务器的信息替代了您的所有信息,就象您就是完全使用那台代理服务器直接访问对象。
//获取用户IP
function getIP() { $ipd = '127.0.0.1'; $vs = array('HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'REMOTE_ADDR'); foreach($vs as $v) { $ip = (getenv($v) ? getenv($v) : $_SERVER[$v]); if($ip && strcasecmp($ip, 'unknown') && preg_match('~^([0-9]{1,3}\.){3}[0-9]{1,3}$~', $ip)) { break; } else { $ip = $ipd; } } $ips = explode('.', $ip); for($i = 0; $i < 4; $i++) { $ipi = (is_numeric($ips[$i]) ? (int) $ips[$i] : -1); if($ipi < 0 || $ipi > 255) { $ip = $ipd; break; } } return $ip; }
发表评论
-
RedHat下安装并开启PHP GD库的方法
2014-10-13 15:25 2134GD库是PHP进行图文操作时一个重要的库。红帽系统适合用编译安 ... -
xxtea加密解密算法的PHP实现
2012-11-29 10:35 1637Class Xxtea { pu ... -
PHP:字符串变量中大括号(花括号{})的作用
2012-11-29 09:50 1616PHP 变量后面加上一个大括号{},里面填上数字,就是指 PH ... -
Linux下的 ZipArchive 配置
2012-08-22 13:25 3562今天在Linux底下上传Excel文件时,抛出“Z ... -
解决PHP不能上传、拷贝含有中文路径文件的问题
2012-08-01 16:29 4384在使用copy()、 move_uploaded_file ... -
empty(), is_null(), isset() 的真值表
2012-06-25 16:22 980比较全面,以便不时之需。 -
PHP获取当前时间的毫秒数
2012-06-25 16:04 238861 second = 1000 millisecond = 1 ... -
PHP之引用
2012-06-07 16:01 1040所谓PHP的引用,就是不同的名字访问同一个变量内容。可 ... -
解决PHP之 Allowed memory size of xxx bytes exhausted
2012-05-25 10:30 4894今天写了个死循环 ... -
CI框架与widget(页面布局)
2012-02-10 11:24 1684在WEB开发过程中,我们免不了要输出视图文件,而 ... -
解决url传输的中文字符乱码
2011-12-31 18:16 1154今天在做接口的时候,遇到在url里带参数时,当传入中文字符 ... -
关于obstart()
2011-12-13 09:54 956最近在开发一系列 ... -
PHP开发编码规范
2011-11-29 10:20 1284在PHP的编写过程中,越 ... -
sprintf用法小记
2011-11-14 11:06 1123sprintf()函数非常适合生成数据库查询,从而避免我们手工 ... -
查询mysql总结和预处理
2011-11-11 14:11 2445一、连接到mysql: $dbc = mysqli_conn ... -
Apache服务器解析shtml
2011-09-16 11:27 1201首先要配置apache服务器,让apache支持shtml的解 ... -
WindowsXP下Wamp5集成安装memcached
2011-09-16 10:01 1395随着各种公司业务的发展,memcache缓存在为各公司的数 ... -
php中header的用法【转载】
2011-07-25 15:30 901header的用法 header()函数 ... -
php调用远程url的四种方法
2011-03-31 15:57 9931、 用file_get_contents 以get方式获取内 ... -
图片表单提交
2011-01-11 14:52 820很多情况下为了美化表单都会把提交按钮改成用一个图片来代替。 图 ...
相关推荐
php函数获取电脑客户端真实ip,包括代理
为了解决这个问题,可以采用NAT123端口映射工具,它能够帮助我们在经过NAT转换后仍然获取到客户端的真实IP。 NAT123是一款强大的端口映射软件,它支持将内网服务暴露到公网,同时在转发过程中保持客户端IP的完整性...
在这种情况下,可以尝试使用其他`$_SERVER`变量来获取真实的客户端IP: 1. `$_SERVER['HTTP_CLIENT_IP']`: 如果HTTP_X_FORWARDED_FOR头被设置,这个变量可能包含客户端IP。 2. `$_SERVER['HTTP_X_FORWARDED']`: ...
在服务器端,这可以通过访问HTTP请求头中的`X-Forwarded-For`或者`Remote-Addr`字段来实现,这些字段通常包含了客户端的真实IP地址。 3. **本地测试**: 当在本地进行测试时,由于Flex应用通常运行在开发者机器上...
本文将详细介绍PHP环境下如何获取客户端的真实IP地址。这在Web开发中是一个重要的知识点,尤其当服务器需要精确判断客户端位置或限制恶意访问时。在正常的HTTP通信过程中,客户端的真实IP地址是通过REMOTE_ADDR变量...
在PHP编程中,获取客户端的信息是一项常见的需求,例如用户的IP地址、地理位置、浏览器类型以及本地真实IP等。这个名为"3ip类库"的压缩包提供了一个PHP类库,专门用于实现这些功能。下面我们将详细探讨这个类库的...
在PHP开发中,获取用户公网IP(真实IP地址)是一个常见的需求,这通常涉及到网络通信和服务器配置。当我们使用PHP内置的全局数组`$_SERVER`中的`'REMOTE_ADDR'`来获取用户IP时,有时会发现它返回的是内网IP而非公网...
在PHP编程中,获取客户端的信息是一项常见的需求,例如用户的IP地址、地理位置、浏览器信息以及本地真实IP等。这些数据在网站统计、用户行为分析、安全防护等方面都有重要作用。本篇文章将详细讲解如何利用PHP实现这...
因此,有时我们需要检查其他如`$_SERVER['HTTP_X_FORWARDED_FOR']`等变量来获取真实IP。 描述中提到的“把压缩包解压,直接放在本地环境就可以运行”,暗示了可能包含了一个预配置好的PHP脚本或类库,用于IP到地理...
### PHP获取客户端真实IP地址的实现与分析 #### 1. 基本知识与常量 在PHP中,通常使用`$_SERVER["REMOTE_ADDR"]`来获取客户端的IP地址。这个服务器变量包含了发起请求的客户端的IP地址。然而,随着网络技术的发展...
获取客户端ip其实不是个简单的活儿,因为存在Ip欺骗,和代理问题,所以获取客户端的IP的真实性会打折扣的,...但是我们尽量使用比较完善的方法获取客户的ip,下面小编给大家分享PHP获取用户客户端真实IP的方法,一起看看吧
在PHP编程中,获取用户的真实IP地址是一项常见的任务,尤其在需要进行数据分析、日志记录或者安全防护等场景中。由于互联网的复杂性,用户的IP地址可能会被代理服务器、CDN服务、NAT转换等多层网络设备所遮蔽,因此...
为了处理这种情况,该类可能还会检查其他HTTP头,如`HTTP_X_FORWARDED_FOR`和`HTTP_CLIENT_IP`,以找到最接近客户端的真实IP。 其次,获取地理信息通常涉及到IP地址到地理位置的映射。这个过程可以通过查询IP数据库...
### PHP在不同环境下获取真实IP的方法 在Web开发过程中,获取客户端的真实IP地址是一项非常重要的功能,尤其是在需要...以上就是关于如何在不同的PHP环境中准确获取客户端真实IP地址的方法介绍。希望对您有所帮助!
// 获取客户端IP地址 $geoInfo = $ipLocation->getGeoInfo($ip); if ($geoInfo !== null) { echo "您来自:{$geoInfo['region']} - {$geoInfo['city']}"; } else { echo "无法确定您的位置信息。"; } ?> ``` ...
需要注意的是,客户端IP地址在某些场景下可能并不是用户的真实IP地址,例如当用户通过代理服务器访问或者处于NAT环境中时,'REMOTE_ADDR'显示的将是代理服务器或者NAT设备的IP地址。 总结来说,$_SERVER['REMOTE_...
在PHP开发中,获取客户端IP地址是常见的需求,特别是在服务器端需要识别用户来源时。ThinkPHP作为一款流行的PHP框架,提供了便捷的方式来进行这一操作。在本文中,我们将深入探讨ThinkPHP如何获取客户端IP以及一些...
echo "客户端真实IP: " . $ip; ``` 3. **利用特定工具获取真实IP** 除了上述方法外,还可以利用一些专门的工具和服务来获取客户端的真实IP地址。例如,对于使用CloudFlare CDN的服务,可以编写Python脚本来获取...