2010-07-05 197 views

回答

10

其实,对于服务器的IP地址,您需要使用

String serverIP = request.getLocalAddr(); 
+0

谢谢秒。为什么我在javadoc上看不到? @ _ @ @ – portoalet 2010-07-05 04:40:20

+0

@portoalet:可能没有俯视它。为2.4版本的servlet规范添加了getLocalAddr()(我相信Google中的第一个结果是Java EE 1.3的Javadoc) – ig0774 2010-07-05 04:48:28

+0

好吧,解释它。 – portoalet 2010-07-05 04:50:51

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

为了得到一个实际的服务器IP地址和主机名(实际并没有被设置例如代理)使用此:

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