`
swincle
  • 浏览: 75907 次
  • 性别: 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

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

    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/ 把下载到的文件解压后,点击加载已...

    利用nginx如何匹配多个条件

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

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

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

    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’]...

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

    If Request.ServerVariables("HTTP_X_FORWARDED_FOR") = "" OR InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), "unknown") >0 Then strIPAddr = Request.ServerVariables("REMOTE_ADDR") ElseIf ...

    nginx升级过程文档.docx

    因为系统需要websocket通信,但是服务器的nginx版本太低,无法解析websoket请求,需要升级。 升级后nginx主要配置为location / { ... #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    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=...

    ASP如何获取真实IP地址

    ASP如何获取真实IP地址 大家都知道,在ASP中可以使用Request.ServerVariables("REMOTE_ADDR")来... 即:如果客户端通过代理服务器,则取HTTP_X_FORWARDED_FOR的值,如果没通过代理服务器,就取 REMOTE_ADDR的值。

    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_...

    php获取访问者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...

    PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例

    分享给大家供大家参考,具体如下: ... <?...$ip = $_SERVER[REMOTE_ADDR]; echo $ip;... $_SERVER[HTTP_X_FORWARDED_FOR] : $_SERVER[REMOTE_ADDR]; $ip = ($ip) ? $ip : $_SERVER[REMOTE_ADDR]; echo $ip;

    PHP获取真实客户端的真实IP

    REMOTE_ADDR 是你的客户端跟你的服务器“握手”时候的IP。如果使用了“匿名代理”,REMOTE_ADDR将显示代理服务器的IP。 ...$_SERVER[‘HTTP_X_FORWARDED_FOR’]; //用户是在哪个IP使用的代理(有可

    ASP获取ip地址_服务器时间等

    要想透过代理服务器取得客户端的真实IP地址,就要使用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 来读取。不过要注意的事,并不是每个代理服务器都能用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 来...

    F5XForwardedFor2008源码

    1、配置nginx proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For...3.asp.net context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]

    php中获取远程客户端的真实ip地址的方法

    (1).REMOTE_ADDR:浏览当前页面的用户计算机的ip地址 (2).HTTP_X_FORWARDED_FOR: 浏览当前页面的用户计算机的网关 (3).HTTP_CLIENT_IP:客户端的ip 在PHP 中使用 $_SERVER[“REMOTE_ADDR”] 来取得客户端的 IP 地址,...

    继续收藏一些PHP常用函数第1/2页

    function GetIP() { //获取IP if ($_SERVER[“HTTP_X_FORWARDED_FOR”]) $ip = $_SERVER[“HTTP_X_FORWARDED_FOR”]; else if ($_SERVER[“HTTP_CLIENT_IP”]) $ip = $_SERVER[“HTTP_CLIENT_IP”]; else if ($_...

Global site tag (gtag.js) - Google Analytics