`

Request.ServerVariables详细说明及代理

阅读更多

ServerVariables是环境变量的集合。允许读取HTTP头。你可以通过使用HTTP_前缀来读取任何头信息。

Request.ServerVariables["Url"]


返回服务器地址

Request.ServerVariables["Path_Info"]


客户端提供的路径信息

Request.ServerVariables["Appl_Physical_Path"]


与应用程序元数据库路径相应的物理路径

Request.ServerVariables["Path_Translated"]


通过由虚拟至物理的映射后得到的路径

Request.ServerVariables["Script_Name"]


执行脚本的名称

Request.ServerVariables["Query_String"]


查询字符串內容

Request.ServerVariables["Http_Referer"]


请求的字符串內容

Request.ServerVariables["Server_Port"]


接受请求的服务器端口号

Request.ServerVariables["Remote_Addr"]


发出请求的远程主机的IP地址

Request.ServerVariables["Remote_Host"]


发出请求的远程主机名称

Request.ServerVariables["Local_Addr"]


返回接受请求的服务器地址

Request.ServerVariables["Http_Host"]


返回服务器地址

Request.ServerVariables["Server_Name"]


服务器的主机名、DNS地址或IP地址

Request.ServerVariables["Request_Method"]


提出请求的方法比如GET、HEAD、POST等等

Request.ServerVariables["Server_Port_Secure"]


如果接受请求的服务器端口为安全端口时,则为1,否则为0

Request.ServerVariables["Server_Protocol"]


服务器使用的协议的名称和版本

Request.ServerVariables["Server_Software"]


应答请求并运行网关的服务器软件的名称和版本

Request.ServerVariables["All_Http"]


客户端发送的所有HTTP标头,前缀HTTP_

Request.ServerVariables["All_Raw"]


客户端发送的所有HTTP标头,其结果和客户端发送时一样,没有前缀HTTP_

Request.ServerVariables["Appl_MD_Path"]


应用程序的元数据库路径

Request.ServerVariables["Content_Length"]


客户端发出內容的长度

Request.ServerVariables["Https"]


如果请求穿过安全通道(SSL),则返回ON如果请求来自非安全通道,则返回OFF

Request.ServerVariables["Instance_ID"]


IIS实例的ID号

Request.ServerVariables["Instance_Meta_Path"]


响应请求的IIS实例的元数据库路径

Request.ServerVariables["Http_Accept_Encoding"]
返回內容如:gzip,deflate

 

Request.ServerVariables["Http_Accept_Language"]
返回內容如:en-us

 

Request.ServerVariables["Http_Connection"]
返回內容:Keep-Alive

 

Request.ServerVariables["Http_Cookie"]
返回內容如:nVisiT%

2DYum=125;ASPSESSIONIDCARTQTRA=FDOBFFABJGOECBBKHKGPFIJI;ASPSESSIONIDCAQQTSRB=LKJJPLABABILLPCOGJGAMKAM;ASPSESSIONIDACRRSSRA=DK

HHHFBBJOJCCONPPHLKGHPB

 

Request.ServerVariables["Http_User_Agent"]
返回內容:Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1)

 

Request.ServerVariables["Https_Keysize"]
安全套接字层连接关键字的位数,如128

 

Request.ServerVariables["Https_Secretkeysize"]
服务器验证私人关键字的位数如1024

 

Request.ServerVariables["Https_Server_Issuer"]
服务器证书的发行者字段

 

Request.ServerVariables["Https_Server_Subject"]
服务器证书的主题字段

 

Request.ServerVariables["Auth_Password"]
当使用基本验证模式时,客户在密码对话框中输入的密码

 

Request.ServerVariables["Auth_Type"]
是用户访问受保护的脚本时,服务器用於检验用户的验证方法

 

Request.ServerVariables["Auth_User"]
代证的用户名

 

Request.ServerVariables["Cert_Cookie"]
唯一的客户证书ID号

 

Request.ServerVariables["Cert_Flag"]
客户证书标誌,如有客户端证书,则bit0为0如果客户端证书验证无效,bit1被设置为1

 

Request.ServerVariables["Cert_Issuer"]
用户证书中的发行者字段

 

Request.ServerVariables["Cert_Keysize"]
安全套接字层连接关键字的位数,如128

 

Request.ServerVariables["Cert_Secretkeysize"]
服务器验证私人关键字的位数如1024

 

Request.ServerVariables["Cert_Serialnumber"]
客户证书的序列号字段

 

Request.ServerVariables["Cert_Server_Issuer"]
服务器证书的发行者字段

 

Request.ServerVariables["Cert_Server_Subject"]
服务器证书的主题字段

 

Request.ServerVariables["Cert_Subject"]
客户端证书的主题字段

 

Request.ServerVariables["Content_Type"]
客户发送的form內容或HTTPPUT的数据类型

 

Request.ServerVariables["HTTP_X_FORWARDED_FOR"]
可以获得位于代理(网关)后面的直接IP,当然必须这个代理支持


一些被隐藏起来的Request.ServerVariables参数:
Request.ServerVariables["NUMBER_OF_PROCESSORS"]
Request.ServerVariables["OS"]
Request.ServerVariables["WINDIR"]
Request.ServerVariables["TEMP"]
Request.ServerVariables["TMP"]
Request.ServerVariables["ComSpec"]
Request.ServerVariables["Os2LibPath"]
Request.ServerVariables["Path"]
Request.ServerVariables["PATHEXT"]
Request.ServerVariables["PROCESSOR_ARCHITECTURE"]
Request.ServerVariables["PROCESSOR_IDENTIFIER"]
Request.ServerVariables["PROCESSOR_LEVEL"]
Request.ServerVariables["PROCESSOR_REVISION"]


本机ip:<%=request.servervariables["remote_addr"]%>


服务器名:<%=Request.ServerVariables["SERVER_NAME"]%>


服务器IP:<%=Request.ServerVariables["LOCAL_ADDR"]%>


服务器端口:<%=Request.ServerVariables["SERVER_PORT"]%>


服务器时间:<%=now%>


IIS版本:<%=Request.ServerVariables["SERVER_SOFTWARE"]%>


脚本超时时间:<%=Server.ScriptTimeout%>


本文件路径:<%=server.mappath(Request.ServerVariables["SCRIPT_NAME"])%>


服务器CPU数量:<%=Request.ServerVariables["NUMBER_OF_PROCESSORS"]%>


服务器解译引擎:<%=ScriptEngine & "/"& ScriptEngineMajorVersion&"."&ScriptEngineMinorVersion&"."& ScriptEngineBuildVersion %>


服务器操作系统:<%=Request.ServerVariables["OS"]%>


支持的文件类型:<%=Request.ServerVariables["HTTP_Accept"]%>


访问的文件路径:<%=Request.ServerVariables["HTTP_url"]%>


用户代理的信息:<%=Request.ServerVariables["HTTP_USER_AGENT"]%>



Request.ServerVariables变量意义. http代理相关知识
Request.ServerVariables["HTTP_VIA"]---------可以获得用户内部的ip
Request.ServerVariables["HTTP_X_FORWARDED_FOR"]---------可以知道代理服务器的服务器名以及端口
Request.ServerVariables["REMOTE_ADDR"]-- 发出请求的远程主机的 IP 地址。

 

http代理相关知识
关键就在HTTP_X_FORWARDED_FOR
使用不同种类代理服务器,上面的信息会有所不同:

 

一、没有使用代理服务器的情况:
REMOTE_ADDR = 您的 IP
HTTP_VIA = 没数值或不显示
HTTP_X_FORWARDED_FOR = 没数值或不显示

 

二、使用透明代理服务器的情况:Transparent Proxies
REMOTE_ADDR = 代理服务器 IP
HTTP_VIA = 代理服务器 IP
HTTP_X_FORWARDED_FOR = 您的真实 IP
这类代理服务器还是将您的信息转发给您的访问对象,无法达到隐藏真实身份的目的。

 

三、使用普通匿名代理服务器的情况:Anonymous Proxies
REMOTE_ADDR = 代理服务器 IP
HTTP_VIA = 代理服务器 IP
HTTP_X_FORWARDED_FOR = 代理服务器 IP
隐藏了您的真实IP,但是向访问对象透露了您是使用代理服务器访问他们的。

 

四、使用欺骗性代理服务器的情况:Distorting Proxies
REMOTE_ADDR = 代理服务器 IP
HTTP_VIA = 代理服务器 IP
HTTP_X_FORWARDED_FOR = 随机的 IP
告诉了访问对象您使用了代理服务器,但编造了一个虚假的随机IP代替您的真实IP欺骗它。

 

五、使用高匿名代理服务器的情况:High Anonymity Proxies (Elite proxies)
REMOTE_ADDR = 代理服务器 IP
HTTP_VIA = 没数值或不显示
HTTP_X_FORWARDED_FOR = 没数值或不显示

 

private String GetUserIp()
    {
        if (Request.ServerVariables["HTTP_VIA"]!=null)//有代理服务器IP
        {
            return Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();//得到真实IP
        }
        else
        {
            return Request.ServerVariables["REMOTE_ADDR"].ToString();
        }
    }

 

分享到:
评论

相关推荐

    c#.net常用的小函数和方法集

    8. **Request.ServerVariables**:在 ASP.NET 中,`Request.ServerVariables` 集合提供了服务器变量的访问,如远程用户的 IP 地址。 ```csharp string userIP = Request.ServerVariables["REMOTE_ADDR"].ToString...

    C#开发常用方法整理

    以下是一些关键知识点的详细说明: 1. **DateTime 类**:C#中的DateTime类提供了处理日期和时间的功能。`DateTime.Now`用于获取当前系统时间。通过DateTime对象的属性,可以获取年、月、日、时、分、秒和毫秒,例如...

    c#.net常用函数列表.doc

    以下是一些在C#.NET中经常使用的函数及其详细说明: 1. **DateTime 类**: - `DateTime currentTime = new System.DateTime();` 创建一个表示当前日期和时间的新实例。 - `currentTime = System.DateTime.Now;` ...

    ASP.NET获取客户端

    以下是一些关键知识点的详细说明: 1. **服务器信息获取**: - `Page.Server.MachineName`:此属性用于获取服务器的计算机名称,它提供了运行ASP.NET应用的服务器主机名。 - `Page.Request.UserHostAddress`:...

    C#.net常用的小函数和方法集

    以下是一些常用的函数和方法的详细说明: 1. **DateTime 类**:这个类提供了处理日期和时间的能力。`DateTime currentTime = new DateTime();` 创建了一个新的DateTime对象,初始化为当前时间。`DateTime.Now` 属性...

    asp下比较全面的获取IP地址的代码

    在最基础的情况下,可以通过`Request.ServerVariables("REMOTE_ADDR")`获取客户端的IP地址,这通常是直接连接到Web服务器的用户的IP。然而,当用户通过代理服务器或者负载均衡设备上网时,`REMOTE_ADDR`可能只会返回...

    asp 获取ip

    - **条件判断**:如果`DulIp`为空,则说明客户端没有通过代理服务器访问,直接使用`ProIP`作为客户端的IP地址;否则,使用`DulIp`作为客户端的真实IP地址。 #### 3. 实际应用场景 - **访问统计**:通过记录不同IP...

    c#.net常用的小函数和方法集.pdf

    以下是一些关键知识点的详细说明: 1. **DateTime 类**:System.DateTime 类是用于处理日期和时间的内置类型。`DateTime.Now` 属性可以获取当前系统的日期和时间。通过这个对象,你可以获取年、月、日、时、分、秒...

    在C#常用的函数列表

    以下是一些关键知识点的详细说明: 1. **DateTime 类**: - `DateTime.Now`:获取当前系统的本地时间。 - `DateTime.Year`,`DateTime.Month`,`DateTime.Day`,`DateTime.Hour`,`DateTime.Minute`,`DateTime....

    c#.net常用的小函数和方法集.docx

    以下是一些常见的函数和方法的详细说明: 1. `DateTime.Now`:这个表达式用于获取当前系统的日期和时间。`currentTime = DateTime.Now;` 可以用来存储当前时刻。 2. `Int32.Parse(变量)`:此方法将字符串转换为32...

    ASPdotnet获得客户端的IP

    可以通过`Request.ServerVariables("REMOTE_ADDR")`来获取客户端IP地址,这是最直接的方法。但要注意,如果服务器位于负载均衡或反向代理之后,这个方法可能会返回代理服务器的IP,而非最终用户的IP。 2. 使用`...

    Visual_C#_常用函数和方法集汇总

    - `Request.ServerVariables["REMOTE_ADDR"]` 可以获取客户端的IP地址,但如果是通过代理服务器访问,可能需要检查 `Request.ServerVariables["HTTP_VIA"]` 和 `Request.ServerVariables["HTTP_X_FORWARDED_FOR"]` ...

    c#.net常用函数和方法集

    以下是对这些知识点的详细说明: ### 1. DateTime 数字型 `System.DateTime` 类用于处理日期和时间数据。下面是一些基本的使用方法。 #### 1.1 取当前年月日时分秒 ```csharp System.DateTime currentTime = ...

    C3常用的Api软件

    8. `Request.ServerVariables` 属性:在ASP.NET中,`Request.ServerVariables["REMOTE_ADDR"]` 获取客户端的IP地址,`Request.ServerVariables["HTTP_X_FORWARDED_FOR"]` 如果通过代理服务器,可以获取真实IP。...

    收藏的ASP常用的函数集

    If request.servervariables("SERVER_PORT") = "80" Then Get_ScriptNameUrl = "http://" & request.servervariables("server_name") & LCase(request.servervariables("script_name")) Else Get_ScriptNameUrl ...

    ASP例子

    可以通过`Request.ServerVariables("HTTP_USER_AGENT")`获取用户代理字符串,然后判断浏览器类型,进一步执行特定操作。 **示例代码:** ```asp strBrowser = Request.ServerVariables("HTTP_USER_AGENT") If ...

    C#学习笔记-函数方法集

    string user_IP = Request.ServerVariables["REMOTE_ADDR"].ToString(); ``` 2. **穿透代理服务器获取真实IP地址** - 当客户端通过代理服务器访问时,可以通过检查 `HTTP_VIA` 来获取真实的IP地址。 ```csharp ...

    一些好的网页代码.pdf

    以下是对这些知识点的详细说明: 1. `oncontextmenu="window.event.returnValue=false"` 和 `(false)&gt;`: 这些代码用于禁用鼠标右键菜单,防止用户通过右键点击执行默认操作,比如复制或查看源代码。 2. `...

    Visual C#常用函数和方法集汇总

    - **说明**: 使用 `Request.ServerVariables` 获取客户端的 IP 地址。 **9. 获取客户端真实 IP 地址** - **语法**: ```csharp if (Request.ServerVariables["HTTP_VIA"] != null) { string user_IP = Request....

Global site tag (gtag.js) - Google Analytics