WICKET: как получить ip / адрес клиента

Я использую калитку 1.5.1, не мог понять это.

public class MyPage extends WebPage {

public MyPage() {

    String clientAddress = ...?

java,ip,wicket,

6

Ответов: 3


15 принят
    WebRequest req = (WebRequest) RequestCycle.get().getRequest();
    HttpServletRequest httpReq = (HttpServletRequest) req.getContainerRequest();
    String clientAddress = httpReq.getRemoteHost();

3

Подкласс WebClientInfoдля предоставления открытого метода, который делегирует защищенный RequestCycle. Затем создайте метод для запроса этого в пользовательском WebClientInfoклассе. В Wicket 1.3-1.4 я добился этого путем создания подклассов RequestCycle, но с 1.5 кажется, что все по-другому: RequestCycle в Wicket 1.5

WebClientInfoимеет преимущество запроса X-Forwarded-Forпараметра erquest и возвращает правильный IP-адрес, если ваш сервер находится за балансировщиком прокси / нагрузки, использующим XFF .


Используя Wicket 6 и 7, вы можете сделать следующее:

String remoteAddress = ((WebClientInfo)Session.get().getClientInfo())
                      .getProperties()
                      .getRemoteAddress();
Java, внутрибрюшинно, калитка,
Похожие вопросы