¿Cómo puedo obtener la dirección IP de los visitantes actuales?Obtener la dirección IP del usuario
Respuesta
HttpContext.Current.Request.UserHostAddress;
o
HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
o
HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
Request.UserHostAddress
Editar: también encontró una pregunta interesante con respecto a los encabezados http relacionados con la propiedad intelectual here.
Edit2: como se menciona en los comentarios y en enlace I proporcionada anteriormente, HTTP_X_FORWARDED_FOR
cabecera puede contener múltiples direcciones IP separadas por comas. No me enfrenté a esta situación, pero supongamos que se requieren algunas correcciones a mi respuesta.
que utiliza este código para obtener la dirección IP (que vuelve IPAddress.None
valor si conseguir fallado por alguna razón):
/// <summary>
/// Gets the IP address of the request.
/// <remarks>
/// This method is more useful than built in because in some cases it may show real user IP address even under proxy.
/// <summary>
/// Gets the IP address of the request.
/// <remarks>
/// This method is more useful than built in because in some cases it may show real user IP address even under proxy.
/// The <see cref="System.Net.IPAddress.None" /> value will be returned if getting is failed.
/// </remarks>
/// </summary>
/// <param name="request">The HTTP request object.</param>
/// <returns></returns>
public static IPAddress GetIp(this HttpRequest request)
{
string ipString;
if (string.IsNullOrEmpty(request.ServerVariables["HTTP_X_FORWARDED_FOR"]))
{
ipString = request.ServerVariables["REMOTE_ADDR"];
}
else
{
ipString = request.ServerVariables["HTTP_X_FORWARDED_FOR"].Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
.FirstOrDefault();
}
IPAddress result;
if (!IPAddress.TryParse(ipString, out result))
{
result = IPAddress.None;
}
return result;
}
+1 para devolver como objeto IPAddress –
Tenga en cuenta que el encabezado 'X-Forwarded-For' se puede falsificar, por lo que no tome ninguna decisión de seguridad basada en él. Solo verifique el valor 'HTTP_X_FORWARDED_FOR' si la máquina está detrás de un equilibrador de carga o proxy inverso. – devstuff
También tenga en cuenta que HTTP_X_FORWARDED_FOR contendrá múltiples direcciones IP si se pasan varios proxies. ¿El método de Parse maneja esto correctamente? – Tomas
public String GetIP()
{
string ipString;
if (string.IsNullOrEmpty(Request.ServerVariables["HTTP_X_FORWARDED_FOR"]))
{
ipString = Request.ServerVariables["REMOTE_ADDR"];
}
else
{
ipString = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).FirstOrDefault();
}
return ipString;
}
En primer lugar tratar de averiguar IP del proxy, si es nula podemos conseguir IP del sistema que
Pruebe lo siguiente para obtener la dirección IP externa de usuario ..
public static string getExternalIp()
{
try
{
string externalIP;
externalIP = (new WebClient()).DownloadString("http://checkip.dyndns.org/");
externalIP = (new Regex(@"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"))
.Matches(externalIP)[0].ToString();
return externalIP;
}
catch { return null; }
}
- 1. Búsqueda de la dirección IP del usuario
- 2. función para obtener la dirección IP del usuario
- 3. ¿Cómo obtener la dirección IP del usuario usando .net?
- 4. manera definitiva para obtener la dirección IP del usuario php
- 5. ¿Cómo obtener la dirección IP del servidor?
- 6. Scala Play Framework obteniendo la dirección IP del usuario
- 7. ¿Cómo obtener la dirección IP?
- 8. ¿Cómo obtener la dirección IP del cliente de escritorio remoto?
- 9. Obtener mi dirección de IP
- 10. ¿Cómo obtener la dirección IP desde $ SSH_CLIENT
- 11. ¿Cómo obtener la dirección IP del servidor en ASP.NET?
- 12. Cómo obtener la dirección IP del cliente usando jQuery
- 13. WICKET: cómo obtener la dirección/ip del cliente
- 14. Obtener la dirección IP del cliente en Sinatra?
- 15. ¿Cómo obtener la dirección IP del emulador de Android?
- 16. Obtener la dirección IP del cliente en JSP
- 17. Rieles: obtenga la dirección IP del cliente
- 18. Cómo obtener la dirección IP de sockaddr
- 19. Obtener la dirección IP 'externa' en Java
- 20. Obtener la dirección IP de los visitantes
- 21. No se puede obtener la dirección IP del usuario (proxy/firewall/equilibrador de carga)
- 22. Detección de la dirección IP del cliente y del servidor
- 23. Cómo obtener la dirección IP local usando Inno-setup
- 24. Obtener la dirección IP con la cadena URL? (Java)
- 25. Netty: obtener dirección IP remota en messageReceived
- 26. ¿Por qué recibo :: 1 como dirección IP en ASP.Net .. y cómo obtener la dirección IP correcta?
- 27. SignalR Obtener la dirección IP de la persona que llama
- 28. Obteniendo la dirección IP local
- 29. cURL dirección IP
- 30. Obtener dirección IP local usando Boost.Asio
Cuál es el diferir entre las dos primeras alternativas? –