2009-01-08 22 views
7

Gdy przychodzi żądanie użytkownika, mogę użyć adresu Context.Request.UserHostAddress, aby uzyskać adres IP użytkownika. Jak mogę uzyskać adres IP witryny/serwera w czasie wykonywania? Mam kod raportowania, który może być używany przez wiele witryn na tym samym serwerze, a każda witryna używa innego adresu IP. Dlatego muszę mieć możliwość wykrycia adresu IP witryny w czasie wykonywania.Jak uzyskać adres IP serwera/witryny w asp.net?

Odpowiedz

6

Dzięki Alex, twoja odpowiedź postawiła mnie na właściwej ścieżce. Oto kod, aby robić to, co szukam:

VB.NET:

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

lub

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

ten nie działa, jeśli Twój komputer jest za pomocą przełącznika zawartości . Co należy zrobić, aby znaleźć adres IP, pod którym lokalna strona serwera działa w IIS, jeśli jesteś za przełącznikiem treści? – devlord

14

System.Net.Dns.GetHostAddresses

nawiasem mówiąc, należy zdać się jako argument nazwę hosta, więc może spróbować tego:

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

A jeśli wszystko inne zawiedzie, po prostu zrób to w starym stylu:

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]); 
Powiązane problemy