Obtener la verdadera IP de un cliente

Necesito saber desde un servlet la verdadera Ip de la maquina cliente desde la que se esta accediendo (no la del proxy).

1 respuesta

Respuesta
1
Tienes toda la razón del mundo. Discúlpame. El código funciona sólo si utilizas un Netscape puro, y eso es demasiada restricción para el cliente. He intentado hacer un script para que se no se traduzca hasta que lo solicite el cliente pero no lo he conseguido (mis conocimientos de JS son bastante limitados), en cambio buscando en google he encontrado la página de este tío:
http://www.hashemian.com/tools/visitor-IP.htm
Y yo, detrás de mi proxy, consigo ver mi IP en su página. Puedes probar si te funciona su script.
Como sabrás, la dirección IP de un cliente, al pasar por el proxy, se elimina, y sólo se puede obtener realizando procesado en el lado del cliente.
La única opción viable es que le enviaras al cliente un pequeño applet para que obtuvieras de él la dirección IP con el código (esta vez Java) que te pasé en la respuesta anterior. Esto si funciona, pero es más pesado, tanto para ti como para el cliente.
Espero (esta vez sí) haberte ayudado. Si no es así ya lo sabes, aquí estoy.
Pero esto obtiene la dirección de la maquina servidor, no la del cliente que se conecta a ella.
En principio no puedes obtenerla porque desde el servlet sólo puedes acceder a la información de las cabeceras HTTP que estás recibiendo, y estas son modificadas en el proxy. Las únicas cabeceras HTTP que se quedan intactas son la de "cookies" y la de "user-agent", pero en ellas no obtendrás esa información.
Si el navegador del usuario soporta Java, que no tiene por qué (aunque puedes ponerlo como requisito para tu aplicación) entonces con el siguiente código JavaScript podrás obtener la dirección real del cliente:
<script>
ip=java.net.InetAddress.getLocalHost().getHostAddress();
alert(ip);
</script>
Espero haberte ayudado. Si no era esto lo que pedías no dudes en contactar conmigo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas