WICKET:如何获取客户端的IP /地址

时间:2011-10-14 14:33:24

标签: java ip wicket

我正在使用wicket 1.5.1,无法弄清楚这一点。

public class MyPage extends WebPage {

public MyPage() {

    String clientAddress = ...?

3 个答案:

答案 0 :(得分:15)

    WebRequest req = (WebRequest) RequestCycle.get().getRequest();
    HttpServletRequest httpReq = (HttpServletRequest) req.getContainerRequest();
    String clientAddress = httpReq.getRemoteHost();

答案 1 :(得分:3)

子类WebClientInfo,提供委托受保护WebClientInfo.getRemoteAddr()的公共方法。然后创建一个方法以在自定义RequestCycle类中进行查询。在Wicket 1.3-1.4中,我通过继承RequestCycle实现了这一点,但是1.5似乎有所不同:RequestCycle in Wicket 1.5

WebClientInfo具有查询X-Forwarded-For erquest参数的优势,如果您的服务器位于使用XFF的代理/负载均衡器后面,则会返回正确的IP地址。

答案 2 :(得分:2)

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

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