2011-10-06 23 views
9
  1. En mi máquina Dev HttpContext.Current.Request.UserHostAddress es nulo. ¿Por qué? ¿Cómo puedo activarlo?
  2. ¿Cómo puedo obtener la lista de Ips en el caso de un cliente proxy?

WCF Service with ASP.net 4 window7.HttpContext.Current.Request.UserHostAddress es nulo

Gracias

+0

nunca consigo un vacío/null, pero Cassini devuelve un ":: 1" ahora por cualquier razón. –

+0

@DoozerBlake the :: 1 es la versión de IPv6 de 127.0.0.1. Fuente: http://stackoverflow.com/a/4611421/84395 –

Respuesta

6

para evitar este problema, puede analizar el HTTP_X_FORWARDED_FOR para la última IP entery.

ip=Request.ServerVariables["HTTP_X_FORWARDED_FOR"] ; 
if (!string.IsNullOrEmpty(ip)) 
{ 
    string[] ipRange = ip.Split(','); 
    int le = ipRange.Length - 1; 
    string trueIP = ipRange[le]; 
} 
else 
{ 
    ip=Request.ServerVariables["REMOTE_ADDR"]; 
} 

Esperamos que esto le ayuda

+3

Solo una nota sobre la respuesta de 'Sarvaiya Viral'. De acuerdo con [Wikipedia] (http://en.wikipedia.org/wiki/X-Forwarded-For) y [Amazon] (http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/TerminologyandKeyConcepts.html) el encabezado X-Forwarded-For tiene el siguiente formato:> X-Forwarded-For: client, proxy1, proxy2 Esto significa que debe usar la primera cadena en 'ipRange', no la última. – dubrowgn