Tutorial
Recuperar ip del usuario.
05/02/2007

Código con el que podemos recuperar la ip de un usuario incluso si se encuentra detrás de un proxy.

Código:
// este código si no esta detras de un proxy

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;


public class ip extends HttpServlet {

public void doGet(HttpServletRequest req, HttpServletResponse res)
throws IOException {

String ip = null; // IP del cliente
String host = null; // Host del cliente

ip = req.getRemoteAddr();
host = req.getRemoteHost();

PrintWriter out = res.getWriter();
res.setContentType("text/html");

out.println("<html><body>");
out.println("La ip del cliente es " + ip);
out.println("El host del cliente es " + host);
out.println("</body></html>");
}
}

****************************

// Si esta detras de un proxy

public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {

// Get client's IP address
String ipAddress = req.getHeader("x-forwarded-for");
if (ipAddress == null) {
ipAddress = req.getHeader("X_FORWARDED_FOR");
if (ipAddress == null){
ipAddress = req.getRemoteAddr();
}
}

}

***************************

// Si esta detras de un proxy
if (request.getHeader("HTTP_X_FORWARDED_FOR") == null) {
String ipaddress = request.getRemoteAddr();
} else {
String ipaddress = request.getHeader("HTTP_X_FORWARDED_FOR");
}

JNovo