天天看點

c#判斷用戶端是否為代理IP

用戶端ip: 

Request.ServerVariables.Get("Remote_Addr").ToString(); 

用戶端主機名:

Request.ServerVariables.Get("Remote_Host").ToString(); 

用戶端浏覽器IE:

Request.Browser.Browser; 

用戶端浏覽器 版本号:

Request.Browser.MajorVersion;//

用戶端作業系統:

Request.Browser.Platform; 

伺服器ip: 

Request.ServerVariables.Get("Local_Addr").ToString(); 

伺服器名:

Request.ServerVariables.Get("Server_Name").ToString();

如果你想進一步了解ServerVariables,可以用

foreach(String o in Request.ServerVariables){ 

  Response.Write(o+"="+Request.ServerVariables[o]+"<br>"); 

擷取用戶端IP方法

 public string GetIP()

     {

         string uip = "";

         if (HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null)

         {

             uip = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();

         }

         else

         {

             uip = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();

         }

         return uip;

     }

C# ServerVariables參數說明

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 =