Cómo obtener la dirección IP del cliente en Java HttpServletRequest
Estoy tratando de desarrollar una aplicación web Java (Servlet) que necesito para obtener la dirección IP de los clientes.
Por favor, no considere esto como una pregunta duplicada porque he intentado todas las posibles respuestas que están disponibles en el stackoverflow.
Lo siguiente es mi código hasta ahora:
1)
String ipAddress = request.getRemoteAddr();
En este caso, la mayoría de las veces me sale la dirección de la puerta de enlace predeterminada (147.120.1.5) y no la dirección IP de mi máquina (174.120.100.17).
2)
String ipAddress = request.getHeader("X-FORWARDED-FOR");
if (ipAddress == null) {
ipAddress = request.getRemoteAddr();
}
En este caso, la mayoría de las veces me sale la dirección de la puerta de enlace predeterminada (147.120.1.5) y no la dirección IP de mi máquina (174.120.100.17).
3)
InetAddress IP=InetAddress.getLocalHost();
System.out.println(IP.getHostAddress());
En este caso obtuve la dirección IP del servidor(147.120.20.1).
Mi dirección IP en 147.120.100.17.Ahora no sé cómo obtener la dirección IP del cliente real. Por favor, haga una respuesta.
Muchas Gracias.
Prueba este,
referencia : http://www.mkyong.com/java/how-to-get-client-ip-address-in-java/
En caso de que esté intentando obtener la dirección IP para el entorno de desarrollo, puede utilizar esto:-
El
request.getLocalAddr()
devolverá la dirección IP del sistema receptor de la solicitud.Espero que te sirva de ayuda.
Salida: