Tôi đang cố gắng phát triển một ứng dụng web Java (Servlet) mà tôi cần để lấy địa chỉ IP của khách hàng.Cách lấy địa chỉ IP của máy khách trong Java HttpServletRequest
Vui lòng không coi đây là câu hỏi trùng lặp vì tôi đã thử tất cả các câu trả lời có thể có trong luồng ngăn xếp.
Sau đây là mã của tôi cho đến nay:
1)
String ipAddress = request.getRemoteAddr();
Trong trường hợp này hầu hết các cuốn sách tôi nhận được 'cửa ngõ địa chỉ mặc định' (147.120.1.5). không phải địa chỉ ip máy của tôi (174.120.100.17).
2)
String ipAddress = request.getHeader("X-FORWARDED-FOR");
if (ipAddress == null) {
ipAddress = request.getRemoteAddr();
}
Trong trường hợp này hầu hết các cuốn sách tôi nhận được 'cửa ngõ địa chỉ mặc định' (147.120.1.5). không phải địa chỉ ip máy của tôi (174.120.100.17).
3)
InetAddress IP=InetAddress.getLocalHost();
System.out.println(IP.getHostAddress());
Trong trường hợp này tôi có địa chỉ IP của máy chủ (147.120.20.1).
Địa chỉ IP của tôi ở 147.120.100.17. Tôi không biết cách nhận địa chỉ IP của khách hàng thực. Xin hãy trả lời.
Cảm ơn bạn rất nhiều.
Không có cách nào chính xác để có được địa chỉ của khách hàng ip trừ khi khách hàng một cách rõ ràng gửi cho bạn –
Có không phải cách để có được địa chỉ IP thực của khách hàng mà bạn thực sự thấy có địa chỉ IP công cộng của bạn. –
có thể trùng lặp của [Có thể xác định chính xác địa chỉ IP của ứng dụng khách trong java servlet] không (http://stackoverflow.com/questions/9326138/is-it-possible-to-accurately-determine-the-ip- địa chỉ-của-một-khách-trong-java-servle) – YoYo