我正在使用wicket 1.5.1,無法弄清楚這一點。WICKET:如何獲取客戶端的IP /地址
public class MyPage extends WebPage {
public MyPage() {
String clientAddress = ...?
我正在使用wicket 1.5.1,無法弄清楚這一點。WICKET:如何獲取客戶端的IP /地址
public class MyPage extends WebPage {
public MyPage() {
String clientAddress = ...?
WebRequest req = (WebRequest) RequestCycle.get().getRequest();
HttpServletRequest httpReq = (HttpServletRequest) req.getContainerRequest();
String clientAddress = httpReq.getRemoteHost();
子類WebClientInfo
提供一個公共的方法對保護WebClientInfo.getRemoteAddr()
各位代表。然後創建一個方法來在定製的RequestCycle
類中查詢該方法。在檢票1.3-1.4我已經通過繼承RequestCycle
實現這一點,但1.5似乎事情是不同的:RequestCycle in Wicket 1.5
WebClientInfo
具有查詢X-Forwarded-For
erquest參數的優勢,如果你的服務器就會返回正確的IP地址位於使用XFF的代理/負載均衡器之後。
使用檢票6和7,你可以做到以下幾點:
String remoteAddress = ((WebClientInfo)Session.get().getClientInfo())
.getProperties()
.getRemoteAddress();
難道不該'httpReq.getRemoteAddr()'? –
'getRemoteAddr()'將返回原始IP地址,而'getRemoteHost()'將返回已解析的地址名稱(如果沒有的話)。 – tetsuo