Làm cách nào để lấy địa chỉ IP của máy chủ từ trang JSP?Nhận địa chỉ IP của máy chủ từ đối tượng Yêu cầu/phiên JSP
Hiện tại, tất cả những gì tôi có thể làm là request.getLocalName(), trả về tên máy chủ chứ không phải địa chỉ IP?
Làm cách nào để lấy địa chỉ IP của máy chủ từ trang JSP?Nhận địa chỉ IP của máy chủ từ đối tượng Yêu cầu/phiên JSP
Hiện tại, tất cả những gì tôi có thể làm là request.getLocalName(), trả về tên máy chủ chứ không phải địa chỉ IP?
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();
String sIPAddr = request.getRemoteAddr();
String addr = request.getRemoteAddr();
request.getHeader("X_FORWARDED_FOR")
Để 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ảm ơn S. Tại sao tôi không thấy điều đó trên javadoc? @ _ @ – portoalet
@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
Ok giải thích nó. – portoalet