Estoy usando wicket 1.5.1, no pude resolver esto.WICKET: cómo obtener la dirección/ip del cliente
public class MyPage extends WebPage {
public MyPage() {
String clientAddress = ...?
Estoy usando wicket 1.5.1, no pude resolver esto.WICKET: cómo obtener la dirección/ip del cliente
public class MyPage extends WebPage {
public MyPage() {
String clientAddress = ...?
WebRequest req = (WebRequest) RequestCycle.get().getRequest();
HttpServletRequest httpReq = (HttpServletRequest) req.getContainerRequest();
String clientAddress = httpReq.getRemoteHost();
Subclase WebClientInfo
para proporcionar un método público que los delegados sobre WebClientInfo.getRemoteAddr()
protegida. A continuación, cree un método para consultar esto en una clase personalizada RequestCycle
. En Wicket 1.3-1.4 que he logrado esta subclase RequestCycle
, pero con 1,5 Parece que las cosas son diferentes: RequestCycle in Wicket 1.5
WebClientInfo
tiene la ventaja de consultar el parámetro erquest X-Forwarded-For
, y devolverá la dirección IP correcta si el servidor es detrás de un proxy/balanceador de carga que usa XFF.
El uso peatonal incorporada 6 y 7, se puede hacer lo siguiente:
String remoteAddress = ((WebClientInfo)Session.get().getClientInfo())
.getProperties()
.getRemoteAddress();
¿No debería ser 'httpReq.getRemoteAddr()'? –
'getRemoteAddr()' devolverá la dirección IP sin formato, mientras que 'getRemoteHost()' devolverá el nombre de la dirección resuelta si es posible (o la dirección IP si no es así). – tetsuo