String ipAddress = request.getRemoteAddr();
Pero, si el usuario se conecta via un servidor proxy (ya sea de software o hardware) o en un esquema de alta disponibilidad considerando un balanceador de carga, el código original devolvera el ip del balanceador, router o proxy, no el ip del cliente original conectado.
Para resolver este problema, se debe recuperar la direccion IP del encabezado de la peticion HTTP mas conocida como “X-Forwarded-For (XFF)“ De la siguiente manera:
//el cliente esta conectandose a traves de algun otro equipo? String ipAddress = request.getHeader("X-FORWARDED-FOR"); if (ipAddress == null) { ipAddress = request.getRemoteAddr(); }
Hasta la próxima!
Si se utiliza protocolo SOAP la implementación del "X-FORWARDED-FOR" se podría implementar para obtener la ip de la petición original y no la del balanceador? o es diferente?
ResponderEliminar