2009-01-08 20 views
7

Cuando aparece una solicitud de usuario, puedo usar Context.Request.UserHostAddress para obtener la dirección IP del usuario. ¿Cómo puedo obtener la dirección IP del sitio web/servidor en tiempo de ejecución? Tengo un código de informe que pueden usar varios sitios web en el mismo servidor, y cada sitio web usa una dirección IP diferente. Entonces, debo poder detectar la dirección IP del sitio web en tiempo de ejecución.¿Cómo obtengo la dirección IP del servidor/sitio web en asp.net?

Respuesta

6

Gracias Alex, tu respuesta me puso en el camino correcto. Aquí está el código para hacer lo que estoy buscando:

VB.NET:

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

o

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

Esto no funciona si el host está detrás de un interruptor de contenido . ¿Qué necesitaría hacer para encontrar la dirección IP en la que se ejecuta el sitio del servidor local en IIS si está detrás de un cambio de contenido? – devlord

14

System.Net.Dns.GetHostAddresses

por cierto, se debe pasar como argumento el nombre del host, así que tal vez intente esto:

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

Y si todo lo demás falla, simplemente hazlo de la manera de la vieja escuela:

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]); 
Cuestiones relacionadas