2010-07-05 36 views

Trả lời

10

Trên thực tế, đối với các địa chỉ IP của máy chủ, bạn cần phải sử dụng

String serverIP = request.getLocalAddr(); 
+0

Cảm ơn S. Tại sao tôi không thấy điều đó trên javadoc? @ _ @ – portoalet

+0

@portoalet: Có thể đã không được nhìn ra nó. getLocalAddr() đã được thêm vào cho phiên bản 2.4 của đặc tả servlet (Tôi tin rằng kết quả đầu tiên trong Google là Javadoc cho Java EE 1.3) – ig0774

+0

Ok giải thích nó. – portoalet

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

Để có được một IP máy chủ thực tế và hostname (thực tế và không được thiết lập bởi ví dụ: proxy) sử dụng điều này:

  <%@ 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 %> 
Các vấn đề liên quan