En una situación donde utilice la dirección IP de seguridad, debe conocer su infraestructura.
Si está usando un proxy entre el servidor web y sus clientes que establece la cabecera, debe ser capaz de confiar en la última dirección. Luego, utiliza el código como Muhammed sugirió con una actualización para obtener siempre la última dirección IP del encabezado directo (Vea el código a continuación)
Si no usa un proxy, tenga en cuenta que el encabezado X-Forwarded-For es muy fácil de burlar. Le sugiero que lo ignore, a menos que tenga una razón clara para no hacerlo.
He actualizado el código de Muhammed Akhtar la siguiente manera para que pueda elegir:
public string GetIP(bool CheckForward = false)
{
string ip = null;
if (CheckForward) {
ip = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
}
if (string.IsNullOrEmpty(ip)) {
ip = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
} else { // Using X-Forwarded-For last address
ip = ip.Split(',')
.Last()
.Trim();
}
return ip;
}
Este Wikipedia article explica los riesgos más a fondo.
1. [http://www.w3schools.com/asp/coll_servervariables.asp](http://www .w3schools.com/asp/coll_servervariables.asp) 2. [http://balanagaraj.wordpress.com/2008/01/07/get-users-country-name-using-ip-address/](http://. balanagaraj.wordpress.com/2008/01/07/get-users-country-name-using-ip-address/) – solairaja
posible duplicado de [Cómo obtener la dirección IP del cliente de un usuario en ASP.NET?](http:/ /stackoverflow.com/questions/735350/how-to-get-a-users-client-ip-address-in-asp-net) –