Java獲取客戶端的真實IP位址

2021-06-22 14:17:34 字數 1170 閱讀 2686

像移動閘道器一樣,iisforward這個isapi過濾器也會對request物件進行再包裝,附加一些wls要用的頭資訊。這種情況下,直接用request.getremoteaddr()是無法取到真正的客戶ip的。

實際的iisforward附加頭如下:

wl-proxy-client-ip=211.161.1.239

proxy-client-ip=

211.161

.1.239

x-forwarded-for=

211.161

.1.239

wl-proxy-client-keysize=   

wl-proxy-client-secretkeysize=   

x-weblogic-request-clusterinfo=

true

x-weblogic-keepalivesecs=

30x-weblogic-force-jvmid=-

327089098

wl-proxy-ssl=

false

綜上,正確作法如下:

private string getipaddr()    

if(ipaddress == 

null

|| ipaddress.length() == 

0|| 

"unknown"

.equalsignorecase(ipaddress))    

if(ipaddress == 

null

|| ipaddress.length() == 

0|| 

"unknown"

.equalsignorecase(ipaddress))  

catch

(unknownhostexception e)    

ipaddress= inet.gethostaddress();   

}   

}   

//對於通過多個**的情況,第乙個ip為客戶端真實ip,多個ip按照','分割 

if(ipaddress!=

null

&& ipaddress.length()>

15)   

}   

return

ipaddress;    

}   

Java獲取客戶端的真實IP

發生的場景 伺服器端接收客戶端請求的時候,一般需要進行簽名驗證,客戶端ip限定等情況,在進行客戶端ip限定的時候,需要首先獲取該真實的ip。一般分為兩種情況 方式一 客戶端未經過 直接訪問伺服器端 nginx,squid,haproxy 方式二 客戶端通過多級 最終到達伺服器端 nginx,squi...

java 獲取客戶端真實ip方法

獲取當前網路ip 對於通過多個 的情況,第乙個ip為客戶端真實ip,多個ip按照 分割 if ipaddress null ipaddress.length 15 return ipaddress 取x forwarded for中第乙個非unknown的有效ip字串。如 x forwarded f...

獲取客戶端真實ip

很多時候我們需要獲取客戶端的訪問ip,ip位址合法驗證 long sprintf u ip2long ip ip long array ip,long array 0.0.0.0 0 return ip type 一 如果沒有使用 伺服器,remote addr 客戶端iphttp x forwar...