Recuperar la cabecera X-Forwarded-For

10/Oct/2009 Java , , , 5 Comentarios

X-Forwarded-For es una cabecera HTTP que nos permite conocer la IP origen de la petición. Y es que hasta ahora se utilizaba REMOTE_ADDR, la cual solo nos devolvía la IP de la última máquina por la que había pasado. A todas luces poco útil de cara a conocer el origen de la petición.

El formato de la cabecera X-Forwarded-For es el siguiente:

X-Forwarded-For: client1, proxy1, proxy2

En nuestro caso vamos a montar un servlet en Java que acceda a esta cabecera. Para acceder a los datos de la cabecera nos apoyaremos en el método .getHeader() del objeto HttpServletRequest. En este caso el nombre de la cabecera es "X-Forwarded-For", así que el código será el siguiente:

  1. String sIP = request.getHeader("X-FORWARDED-FOR");

Ahora, con esta ristra de datos podemos hacer lo que queramos. Posiblemente necesitemos apoyarnos en StringTokenizer para desmontar la cadena de IP. O, por lo menos, volcar el contenido a la pantalla:

  1. PrintWriter out = response.getWriter();
  2. out.print("La IP origen ha llegado por: " + sIP);

¿Conocías la existencia de X-Forwarded-For? ¿Crees que puede ayudarte en algo en tus programas?

Vídeos sobre Java Servlet


Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D

5 comentarios en “Recuperar la cabecera X-Forwarded-For”

Víctor Cuervo

Víctor Cuervo

@Pablo S. Suena interesante lo de la librería GeoIP. ¿Tienes más información sobre ella? Gracias.

Víctor Cuervo

Pablo S.

Útil también para, en conjunto con la librería GeoIP, conocer la ubicación de tu visitante.

Víctor Cuervo

chingon

no me sirvio, me da un null, pero gracias

Víctor Cuervo

lineadecodigo

Muy buenas opciones @Alberto Vilches,. Sin duda alguna el control de la IP origen permite tener un gran control sobre sus acciones. Muy útil si pensamos en la perspectiva de seguridad.

Y, desde el punto de vista proactivo de cara a tomar decisiones de enrutado, transformación,… ¿que os parece esto?

Víctor Cuervo

Alberto Vilches

De entrada creo que su principal utilidad es la de bloquear IPs por motivos de seguridad. Por ejemplo, si una IP esta accediendo a tu servicio para intentar usar tus formularios para enviar spam. O si por ejemplo has programado un juego online, para evitar que 2 usuarios distintos se identifiquen a la vez desde la misma IP…. Interesante, sin duda.

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*