2010-07-05 12 views

risposta

10

In realtà, per l'indirizzo IP del server, è necessario utilizzare

String serverIP = request.getLocalAddr(); 
+0

Grazie S. Perché non l'ho visto sul javadoc? @ _ @ – portoalet

+0

@portoalet: potrebbe non averlo trascurato. getLocalAddr() è stato aggiunto per la versione 2.4 delle specifiche servlet (credo che il primo risultato in Google sia Javadoc per Java EE 1.3) – ig0774

+0

Ok che lo spiega. – portoalet

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

Per ottenere un IP server reale e il nome host (effettiva e non imposta da per esempio un proxy) utilizzare questo:

  <%@ 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 %>