Tôi đang phát triển một ứng dụng web với java servlet, tôi hy vọng sẽ nhận được thông tin người dùng ip bằng cách gọi request.getRemoteAddr()
từ bên trong processRequest(HttpServletRequest request,HttpServletResponse response)
.Tại sao HttpServletRequest.getRemoteAddr() không hoạt động trong Java servlet?
Nhưng nó trả về IP sai. Vì tôi không hiểu nhiều về lĩnh vực này, tôi không biết nội dung hiển thị, có thể là proxy, tôi nhận được thông tin này:
RemoteAddr : 127.0.0.1 RemoteHost : 127.0.0.1 x-forwarded-for : null
127.0.0.1 không phải là IP của tôi.
Tuy nhiên, khi tôi truy cập: http://www.javascriptkit.com/script/script2/displayip.shtml
nó sẽ hiển thị đúng, vì tôi đang sử dụng servlet, tôi không có .shtml vào trang html được tạo động, tôi có thể làm gì? Và tại sao tập lệnh trên trang web đó có thể hiển thị chính xác trong khi request.getRemoteAddr()
không thể thực hiện điều đó?
Cảm ơn tất cả các câu trả lời, tôi có một đầu mối ngay bây giờ, sau khi triển khai nó đến máy chủ, nó hoạt động như mong đợi. Hiển thị địa chỉ chính xác.
Nhưng ngay cả khi tôi phát triển nó trên máy cục bộ của tôi, làm thế nào để yêu cầu nó hiển thị IP tuyệt đối như thể nó đang chạy trên một máy chủ thực sự? Hay nó có thể làm được?
Khi bạn nói 'sai ip', là địa chỉ trong miền của bạn? Nó sai thế nào? Bạn có thể cho chúng tôi biết thêm thông tin về cuộc gọi _is_ quay lại không? –