1. 程式人生 > >Java獲取真實IP地址

Java獲取真實IP地址

可是當我訪問http://www.xxx.com/index.jsp/ 時,返回的IP地址始終是unknown,也並不是如上所示的127.0.0.1 或 192.168.1.110了,而我訪問http://192.168.1.110:2046/index.jsp

時,則能返回客戶端的真實IP地址,寫了個方法去驗證。原因出在了Squid上。squid.conf 的配製檔案 forwarded_for 項預設是為on,如果 forwarded_for 設成了 off  則:X-Forwarded-For: unknown

於是可得出獲得客戶端真實IP地址的方法二:

 可是,如果通過了多級反向代理的話,X-Forwarded-For的值並不止一個,而是一串Ip值,究竟哪個才是真正的使用者端的真實IP呢?

  答案是取X-Forwarded-For中第一個非unknown的有效IP字串。

  如:
  X-Forwarded-For:192.168.1.110, 192.168.1.120, 192.168.1.130, 192.168.1.100
  使用者真實IP為: 192.168.1.110