Come ottenere il IP del cliente?
-
14-12-2019 - |
Domanda
Mentre questo suona sciocco, non sono stato in grado di trovare un modo per ottenere il PIL del client in Play 2.0.Era disponibile in 1.2.x come Http.Request.remoteAddress
, ma 2.0 (ho controllato principalmente l'API della Scala, ma ho fatto un controllo rapido anche a Java) sembra solo fornire informazioni sul lato server della richiesta in play(.api).mvc.Request
.C'è qualcosa che mi manca?L'hack più vicino che riesco a pensare in questo momento è l'impostazione dietro un proxy inverso e quindi controllando X-Forwarded-For
, ma questo non funziona troppo bene in Dev.
Soluzione
Modifica: Tornando a questa risposta, questo è stato aggiunto in PlayFramework 2.0.2: Vedi annuncio di rilascio su https://groups.google.com/forum/#!msg/play-framework/z97gq2vnr5m/t-stgaeun68j%5b1-25%5D e soprattutto La documentazione API a http://www.playframework. org / documentazione / API / 2.0.2 / Scala / index.html # play.api.mvc.request
Come puoi vedere, ora è il supporto per Request.remoteAddress
Originale:
Attualmente c'è un bug aperto per questo nel tracker: https:// Play .LighthouseApp.com / Progetti / 82401 / Biglietti / 256 Add-Back-RichiediHoaderRemoteadDress
Penso che l'hacking delle librerie Play2.0 per includere la patch collegata è attualmente la migliore scommessa. Probabilmente è ancora più pulito che utilizzare un proxy con il solo scopo di aggiungere intestazioni XFF e utilizzando quelli per determinare l'IP.
Altri suggerimenti
Controlla questo progetto GitHub a https://github.com/orefalo/play2-xforward
Ho preso il codice da Play1 e lo portò a Play2, dovrebbe funzionare lo stesso.
Ancora un lavoro in corso ...