簡體   English   中英

WICKET:如何獲取客戶端的IP /地址

[英]WICKET: how to get client's ip/address

我正在使用wicket 1.5.1,無法弄清楚這一點。

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類中查詢它。 在Wicket 1.3-1.4中,我通過RequestCycle實現了這一點,但是1.5似乎有所不同: Wicket 1.5中的RequestCycle

WebClientInfo具有查詢X-Forwarded-For erquest參數的優勢,如果您的服務器位於使用XFF的代理/負載均衡器后面,它將返回正確的IP地址。

使用Wicket 6和7,您可以執行以下操作:

String remoteAddress = ((WebClientInfo)Session.get().getClientInfo())
                      .getProperties()
                      .getRemoteAddress();

暫無
暫無

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

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