2009-01-08 12 views
7

Wenn eine Benutzeranfrage eingeht, kann ich Context.Request.UserHostAddress verwenden, um die IP-Adresse des Benutzers abzurufen. Wie bekomme ich zur Laufzeit die IP-Adresse der Website/des Servers? Ich habe einen Berichtcode, der von mehreren Websites auf demselben Server verwendet werden kann, und jede Website verwendet eine andere IP-Adresse. Daher muss ich die IP-Adresse der Website zur Laufzeit erkennen können.Wie bekomme ich die Server/Website-IP-Adresse in asp.net?

Antwort

6

Dank Alex, Ihre Antwort brachte mich auf den richtigen Weg. Hier ist der Code zu tun, was ich suche:

VB.NET:

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

oder

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

Das funktioniert nicht, wenn Ihr Rechner hinter einem Content-Schalter . Was würden Sie tun müssen, um die IP-Adresse zu finden, auf der die Site des lokalen Servers in IIS ausgeführt wird, wenn Sie sich hinter einem Inhaltswechsel befinden? – devlord

14

System.Net.Dns.GetHostAddresses

durch die Art und Weise, müssen Sie als Argument den Namen des Host-Pass in, so versuchen Sie vielleicht dieses:

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

Und wenn alle Stricke reißen, tun Sie es nur die alte Schule Weg:

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]); 
Verwandte Themen