Sto usando wicket 1.5.1, non riuscivo a capirlo.WICKET: come ottenere l'IP/indirizzo del cliente
public class MyPage extends WebPage {
public MyPage() {
String clientAddress = ...?
Sto usando wicket 1.5.1, non riuscivo a capirlo.WICKET: come ottenere l'IP/indirizzo 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();
sottoclasse WebClientInfo
per fornire un metodo pubblico che i delegati sulla protetto WebClientInfo.getRemoteAddr()
. Quindi creare un metodo per interrogarlo in una classe personalizzata RequestCycle
. In Wicket 1,3-1,4 Ho raggiunto questo sottoclasse RequestCycle
, ma con 1.5 sembra che le cose sono diverse: RequestCycle in Wicket 1.5
WebClientInfo
ha il vantaggio di interrogazione del parametro erquest X-Forwarded-For
, e restituirà l'indirizzo IP corretto se il server è dietro un proxy/bilanciamento del carico che utilizza XFF.
Utilizzando Wicket 6 e 7, è possibile effettuare le seguenti operazioni:
String remoteAddress = ((WebClientInfo)Session.get().getClientInfo())
.getProperties()
.getRemoteAddress();
Non dovrebbe essere 'httpReq.getRemoteAddr()'? –
'getRemoteAddr()' restituirà l'indirizzo IP non elaborato, mentre 'getRemoteHost()' restituirà il nome dell'indirizzo risolto se possibile (o l'IP se non lo è). – tetsuo