2012-05-02 113 views

回答

5
HttpContext.Current.Request.UserHostAddress; 

HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; 

要獲取本機的IP地址,而不是代理使用下面的代碼

HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; 

但是作爲對你使用這個應用程序脫機,您將永遠得到你的電腦的IP地址,因爲這就是服務器會用另一個字看到的IP,你不會到你的路由器外面,然後連接回服務器,這樣你的外部IP就不會被使用了:

如果您測試您的在線運行的服務器應用程序並嘗試打印出:

Response.Write("IP Address:"); 
Response.Write("IP: " + HttpContext.Current.Request.UserHostAddress); 
Response.Write("IP1: " + HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]); 
Response.Write("IP2: " + HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]); 

你會看到你的公網IP,如果照顧你使用反向代理到達您的PC一樣的CloudFlare之前,請務必使用HTTP_X_FORWARDED_FOR否則,您可以使用remote_addr或userhostaddress。

相關問題