用戶端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 =