簡體   English   中英

如何在Java中獲取用戶的IP地址

[英]how to get users ip address in java

盡管這似乎很簡單,但我嘗試了通常的request.getRemoteAddr(),request.getRemoteHost(),但我一直在獲取服務器地址。 關於我的配置的一些信息,我正在獲取我的網關IP。 有誰知道如何獲得主要用戶的IP地址?

謝謝

如果您和用戶之間存在某種代理,那么您可能必須查看X-Forwarded-For標頭 請注意,這也不保證一定能起作用,但是如果您只需要“足夠好”,那么就足夠了。

Apache Http將使用mod_remoteip(1)集成安全機制來處理X-Forwarded-For標頭。

這是一個Tomcat閥RemoteIpValve(2)和一個Servlet過濾器XForwardedFilter(3),它們分別以與mod_remoteip相同的安全機制在Tomcat和WAR級別上集成X-Forwarded-For和X-Forwarded-Proto標頭。

因此, request.getRemoteAddr()request.getRemoteHost()request.isSecure()request.getScheme()request.getServerPort()將公開X-Forwarded-For和X-Forwarded-Proto傳輸的值。而不是前面的代理/負載平衡器的值。

希望這可以幫助,

西里爾

cleclerc@xebia.fr

(1)http://httpd.apache.org/docs/trunk/mod/mod_remoteip.html

(2)http:// // code.google.com/p/xebia-france/wiki/RemoteIpValve

(3) http://code.google.com/p/xebia-france/wiki/XForwardedFilter

親愛的大家,這是一個更新:

[RemoteIpValve已集成在Tomcat 6.0.24中] [1]和[Tomcat 7.0.0中的RemoteIpFilter] [2]。 這是法語的詳細文章:[Tomcat:Adresse IP de l'internaute,負載均衡器,反向代理和標頭Http X-Forwarded-For] [3](對不起,我們沒有時間翻譯這篇文章英語)。

西里爾(塞爾維亞)

[1] http:// tomcat.apache.org/tomcat-7.0-doc/config/valve.html#Remote_IP_Valve

[2] http:// tomcat.apache.org/tomcat-7.0-doc/config/filter.html#Remote_IP_Filter

[3] http://blog.xebia.fr/2009/05/05/tomcat-adresse-ip-de-linternaute-load-balancer-reverse-proxy-et-header-http-x-forwarded-for/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM