2010-07-05 13 views

Respuesta

10

En realidad, para la dirección IP del servidor, es necesario utilizar

String serverIP = request.getLocalAddr(); 
+0

Gracias s. ¿Por qué no lo vi en el javadoc? @ _ @ – portoalet

+0

@portoalet: Puede que no lo haya estado pasando por alto. getLocalAddr() fue agregado para la versión 2.4 de la especificación del servlet (creo que el primer resultado en Google es el Javadoc para Java EE 1.3) – ig0774

+0

Ok eso lo explica. – portoalet

3
String sIPAddr = request.getRemoteAddr(); 
2
String addr = request.getRemoteAddr(); 
0
request.getHeader("X_FORWARDED_FOR") 
2

Para tener una IP real del servidor y el nombre de host (reales y no está establecida de por ejemplo, un proxy) use esto:

  <%@ page import="java.net.*" %> 
      [...] 
      <% 
      String hostname, serverAddress; 
      hostname = "error"; 
      serverAddress = "error"; 
      try { 
       InetAddress inetAddress; 
       inetAddress = InetAddress.getLocalHost(); 
       hostname = inetAddress.getHostName(); 
       serverAddress = inetAddress.toString(); 
      } catch (UnknownHostException e) { 

       e.printStackTrace(); 
      } 
      %> 
      <li>InetAddress: <%=serverAddress %> 
      <li>InetAddress.hostname: <%=hostname %> 
Cuestiones relacionadas