(转)
一、没有使用代理服务器的情况:
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_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR,需要的朋友可以参考下
2. 然后检查`HTTP_X_FORWARDED_FOR`,处理其中可能存在的多个IP地址,并排除私有IP范围。 3. 如果以上步骤都无法获取IP,则使用`REMOTE_ADDR`。 #### 方法六:组合使用$_SERVER与getenv() **代码示例:** ```php ...
本文实例讲述了PHP实现获取ip地址的5种方法,以及插入用户登录日志操作。分享给大家供大家参考,... $_SERVER[HTTP_X_FORWARDED_FOR] : $_SERVER[REMOTE_ADDR]; $ip = ($ip) ? $ip : $_SERVER[REMOTE_ADDR]; echo $ip;
在PHP编程中,获取访客的IP地址是常见的需求,特别...总结来说,获取访客IP地址需综合考虑多种因素,包括直接使用`REMOTE_ADDR`,检查`HTTP_X_FORWARDED_FOR`和`HTTP_CLIENT_IP`,以及在必要时处理可能存在的多级代理。
$_SERVER[“HTTP_X_FORWARDED_FOR”] : $_SERVER[“REMOTE_ADDR”]; $user_IP = ($user_IP) ? $user_IP : $_SERVER[“REMOTE_ADDR”]; echo $user_IP; //方法3: function getRealIp() { $ip=false; if(!empty...
当用户通过代理服务器访问网站时,可以通过HTTP_X_FORWARDED_FOR头部获取实际的访问者IP地址。需要注意的是,HTTP_X_FORWARDED_FOR可能包含多个IP地址,这时需要进行适当的处理。 ```php $user_IP = ($_SERVER[...
通常来说,可以尝试从`$_SERVER['HTTP_X_FORWARDED_FOR']`或`$_SERVER['REMOTE_ADDR']`这两个变量中读取客户端的IP地址。这是因为客户端可能通过代理服务器访问网站,因此`$_SERVER['HTTP_X_FORWARDED_FOR']`会包含...
需要注意的是,`HTTP_X_FORWARDED_FOR`可能会包含多个IP地址,以逗号分隔,这些IP地址是从客户端到服务器的路径上所有代理服务器的IP地址。在这种情况下,通常使用第一个IP地址作为客户端的真实IP。 #### 方法三:...
在ASP中使用 Request.ServerVariables(“REMOTE_ADDR”) 来取得客户端的IP地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的IP地址,而不是真正的客户端IP地址。 要想透过代理服务器取得客户端的...
2. 使用透明代理服务器时,REMOTE_ADDR会返回最后一个代理服务器的IP地址,HTTP_VIA会显示代理服务器IP,HTTP_X_FORWARDED_FOR则显示用户的真实IP。 3. 使用普通匿名代理服务器时,REMOTE_ADDR同样返回最后一个代理...
这段代码首先检查`HTTP_VIA`,如果存在则尝试从`HTTP_X_FORWARDED_FOR`中获取第一个IP地址。然而,这种方法存在风险,因为`HTTP_X_FORWARDED_FOR`和`HTTP_VIA`的值是可以被篡改的,可能导致安全问题,如SQL注入。 ...
在没有使用代理服务器的情况下,`REMOTE_ADDR`将显示真实的客户端IP地址,而`HTTP_X_FORWARDED_FOR`和`HTTP_VIA`将不会显示或者为空值。 2. **使用透明代理服务器** 透明代理会将客户端的真实IP地址包含在`...
在这种情况下,`HTTP_X_FORWARDED_FOR`头可能包含多个IP地址,我们需要处理这种情况,确保返回的是实际客户端的IP。 除了上述方法,还有其他方式可以获取客户端IP,例如使用`$_SERVER`数组中的其他成员,如`...
此时,可以尝试从HTTP_X_FORWARDED_FOR头部获取原始客户端IP: ```csharp if (Request.ServerVariables["HTTP_VIA"] != null) { string user_IP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString(); ...
- `getenv('HTTP_X_FORWARDED_FOR')` 或 `$_SERVER['HTTP_X_FORWARDED_FOR']` 是HTTP头部字段,通常在经过多个代理服务器时会被填充,包含一系列IP地址,第一个是用户的原始IP,最后一个通常是最后的代理IP。...
1. **多源验证**:不要仅依赖一个头部信息,而是结合`HTTP_X_FORWARDED_FOR`、`HTTP_VIA`和`REMOTE_ADDR`等多种来源进行验证。优先考虑`REMOTE_ADDR`,但在代理环境时,可以检查`HTTP_X_FORWARDED_FOR`的第一个非空...
在Web开发中,我们大多都习惯使用HTTP请求头中的某些属性来获取客户端的IP地址,常见的属性是REMOTE_ADDR、HTTP_VIA和HTTP_X_FORWARDED_FOR。 这三个属性的含义,大概是如此:(摘自网上,欢迎指正)
在实际应用中,由于用户可能会通过多层代理访问,因此在获取IP地址时,可能需要从`$_SERVER['HTTP_X_FORWARDED_FOR']`获取一个由逗号分隔的IP地址列表。我们需要对列表中的每一个IP进行判断,以找到最接近用户真实IP...
`$_SERVER["HTTP_VIA"]`和`$_SERVER["HTTP_X_FORWARDED_FOR"]`通常用于检测代理服务器,当用户通过代理访问时,`HTTP_X_FORWARDED_FOR`会返回客户端的真实IP。如果没有这些信息,就使用`$_SERVER["REMOTE_ADDR"]`...