2009-01-08 142 views
7

當用戶請求進來時,我可以使用Context.Request.UserHostAddress獲取用戶的IP地址。如何在運行時獲取網站/服務器的IP地址?我有一些報告代碼可以被同一臺服務器上的多個網站使用,並且每個網站使用不同的IP地址。所以我需要能夠在運行時檢測網站的IP地址。如何獲取asp.net中的服務器/網站IP地址?

回答

6

謝謝亞歷克斯,你的回答讓我走在正確的道路上。下面是代碼做什麼,我在尋找:

VB.NET:

System.Net.Dns.GetHostAddresses(Request.Url.Host)(0).ToString() 

System.Net.Dns.GetHostEntry(Request.Url.Host).AddressList(0).ToString() 
+1

這如果您的主機的背後是內容開關不起作用。如果您位於內容切換後面,您需要做些什麼才能找到本地服務器站點在IIS中運行的IP地址? – devlord 2009-06-17 01:08:30

14

System.Net.Dns.GetHostAddresses

順便說一下,你必須通過作爲參數名稱的主機,所以也許試試這個:

System.Net.Dns.GetHostByAddress(System.Net.IPAddress.Parse(System.Web.HttpContext.Current.Request.UserHostName)).HostName; 

如果一切都失敗了,只是做老派的方式:

Response.Write(Request.ServerVariables["LOCAL_ADDR"]); 
2
 string siteName = "Your Site URL"; 
    string tempUrl = siteName.Replace("http://", "").Replace("https://", "").Trim(); 
    string[] SiteURLArr = tempUrl.Split('/'); 
    string SiteURL = SiteURLArr[0]; 
     System.Net.IPAddress[] ip = System.Net.Dns.GetHostAddresses(SiteURL); 
    Response.Write(ip[0]);