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:
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:
PrintWriter out = response.getWriter();
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?