Я использую калитку 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 кажется, что все по-другому: RequestCycle в Wicket 1.5
WebClientInfo
WebClientInfo.getRemoteAddr()
RequestCycle
WebClientInfo имеет преимущество запросаX-Forwarded-For erquest и вернет правильный IP-адрес, если ваш сервер находится за прокси / балансировщиком нагрузки, который использует XFF .
X-Forwarded-For
Используя Wicket 6 и 7, вы можете сделать следующее:
String remoteAddress = ((WebClientInfo)Session.get().getClientInfo()) .getProperties() .getRemoteAddress();