`
swincle
  • 浏览: 78704 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HTTP_X_FORWARDED_FOR & REMOTE_ADDR

 
阅读更多

在Request.ServerVariables中并没有HTTP_X_FORWARDED_FOR这个变量,只有REMOTE_ADDR这个变量,但是这两个变量都能够取得客户端IP地址。那么他们之间的区别是什么呢?

  在ASP中使用 Request.ServerVariables("REMOTE_ADDR") 来取得客户端的 IP 地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的IP地址,而不是真正的客户端 IP 地址。要想透过代理服务器取得客户端的真实 IP 地址,就要使用Request.ServerVariables("HTTP_X_FORWARDED_FOR") 来读取。

  不过要注意的事,并不是每个代理服务器都能用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 来读取客户端的真实 IP,有些用此方法读取到的仍然是代理服务器的 IP。

  还有一点需要注意的是:如果客户端没有通过代理服务器来访问,那么用Request.ServerVariables ("HTTP_X_FORWARDED_FOR") 取到的值将是空的。因此,如果要在程序中使用此方法,可以这样处理:

  ......

  userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")

  If userip = "" Then userip = Request.ServerVariables("REMOTE_ADDR")

  ......

  即:如果客户端通过代理服务器,则取 HTTP_X_FORWARDED_FOR 的值,如果没通过代理服务器,就取 REMOTE_ADDR 的值。

  当然,上面的这种做法并不是万能的,就像第三段提到的那样,你有没有考虑到如果用户使用的是2级代理、3级代理、4级代理........

分享到:
评论

相关推荐

    asp HTTP_X_FORWARDED_FOR和REMOTE_ADDR

    为了确保能够正确地识别用户的真实IP,开发者需要理解两个重要的服务器变量:REMOTE_ADDR和HTTP_X_FORWARDED_FOR。以下是对这两个变量进行详细说明的知识点。 首先,REMOTE_ADDR是ASP中一个基本的服务器变量,它...

    php获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)

    一、没有使用代理服务器的情况: REMOTE_ADDR = 您的 IP HTTP_VIA = 没数值或不显示 HTTP_X_FORWARDED_FOR = 没数值或不显示 二、使用透明代理服务器的情况:Transparent Proxies REMOTE_ADDR = 最后一个代理服务器 ...

    PHP通过$_SERVER['REMOTE_ADDR']得到的是内网IP?如何才能获得客户的公网IP(真实IP地址).zip

    你可以尝试使用`$_SERVER['HTTP_X_FORWARDED_FOR']`或`$_SERVER['HTTP_CLIENT_IP']`。但需要注意的是,这些头可以被轻易伪造,因此在安全场景下不能完全信赖。 2. **使用HTTPS和SSL**:在HTTPS环境下,由于数据是...

    利用nginx如何匹配多个条件

    问题分析 熟悉nginx的都知道,nginx不...这里需要匹配$remote_addr $http_x_forwarded_for这两项其中一个获取是内部ip即可访问。 配置nginx $remote_addr不匹配 $flag为01,$http_x_forwarded_for也不匹配 $flag为011

    X-Forwarded-For Header_0.6.2_0.zip

    此扩展允许您快速更新各种 X-Forwarded-For、X-Originating-IP、X-Remote-IP 和 X-Remote-Addr HTTP 标头 打开Chrome浏览器的扩展程序: 地址栏直接输入:chrome://extensions/ 把下载到的文件解压后,点击加载已...

    获取用户Ip地址通用方法与常见安全隐患(HTTP_X_FORWARDED_FOR)

    文章中提到的`getIP()`函数尝试依次检查`HTTP_X_FORWARDED_FOR`、`HTTP_CLIENT_IP`和`REMOTE_ADDR`来获取IP,这在处理代理环境时很有用,但存在安全隐患。攻击者可以通过自定义`HTTP_X_FORWARDED_FOR`头部字段,向...

    web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验

    //设置默认值 if (isset($_SERVER[‘HTTP_X_FORWARDED_FOR’])) { $realip = $_SERVER[‘HTTP_X_FORWARDED_FOR’]; } elseif (isset($_SERVER[‘HTTP_CLIENT_IP’])) { $realip = $_SERVER[‘HTTP_CLIENT_IP’]...

    X-Forwarded-For Nginx 文档整理

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://127.0.0.1:9009/; proxy_redirect off; } ``` ...

    使用HTTP_X_FORWARDED_FOR获取客户端IP的严重后果

    在上述代码中,首先尝试从HTTP_X_FORWARDED_FOR获取IP地址,如果为空,则退回到REMOTE_ADDR。REMOTE_ADDR返回的是直接与服务器建立连接的客户端的IP地址,通常不会被伪造。 然而,使用HTTP_X_FORWARDED_FOR存在几个...

    huoqukehudandeip

    一般来说,获取客户端IP地址有两种主要方式:通过`HTTP_X_FORWARDED_FOR`环境变量或`REMOTE_ADDR`环境变量。这两种方式分别适用于不同的场景: 1. **`HTTP_X_FORWARDED_FOR`**: - 这个环境变量主要用于处理经过...

    asp获取IP地址的两种方法

    总之,在ASP中获取用户IP地址,不仅要考虑到直接连接的情况,还要处理代理服务器的情况,通过`REMOTE_ADDR`和`HTTP_X_FORWARDED_FOR`结合使用可以提高获取IP的准确性。不过,这种方法依赖于代理服务器的正确配置,且...

    获取客户端IP函数详细做法

    当`HTTP_X_FORWARDED_FOR`为空或包含“unknown”时,使用`REMOTE_ADDR`获取客户端IP地址: ```vb If Request.ServerVariables("HTTP_X_FORWARDED_FOR") = "" OR InStr(Request.ServerVariables(...

    nginx做反向代理时的真实IP_nginx反向代理_

    '"$http_user_agent" "$http_x_forwarded_for"'; ``` 这将在日志文件中记录下客户端的IP地址,帮助进行访问分析和故障排查。 总的来说,获取Nginx反向代理下的真实IP需要理解Nginx的配置机制,正确设置HTTP头部,...

    PHPWind和Discuz论坛程序如何获取用户的真实IP地址

    讨论获取客户端IP 地址前,我们首先下弄明白的是以下三个的具体含义:REMOTE_ADDR,HTTP_CLIENT_IP,HTTP_X_FORWARDED_FOR REMOTE_ADDR 是你的客户端跟你的服务器“握手”时候的IP。如果使用了“匿名代理”,REMOTE...

    php REMOTE_ADDR之获取访客IP的代码

     $_SERVER[“HTTP_X_FORWARDED_FOR”] : $_SERVER[“REMOTE_ADDR”]; $user_IP = ($user_IP) ? $user_IP : $_SERVER[“REMOTE_ADDR”]; echo $user_IP; ?> <?php function get_real_ip(){ $ip=...

    flex跨域上传

    proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://localhost:8080/zwh/; } } server { listen 80; server_name test1.zwh.com; location / { proxy_set_header Host $host; proxy_...

Global site tag (gtag.js) - Google Analytics