Frage

Auch wenn das albern klingt, konnte ich in Play 2.0 keine Möglichkeit finden, die IP des Clients abzurufen.Es war in 1.2.x als verfügbar Http.Request.remoteAddress, aber 2.0 (ich habe in erster Linie die Scala-API überprüft, aber auch die Java-API kurz überprüft) scheint nur Informationen über die Serverseite der Anfrage bereitzustellen play(.api).mvc.Request.Fehlt mir etwas?Der beste Hack, der mir im Moment einfällt, besteht darin, ihn hinter einem Reverse-Proxy einzurichten und dann zu überprüfen X-Forwarded-For, aber das funktioniert in der Entwicklung nicht so gut.

War es hilfreich?

Lösung

EDIT: Um auf diese Antwort zurückzukommen: Dies wurde in Playframework 2.0.2 hinzugefügt:siehe Veröffentlichungsankündigung auf https://groups.google.com/forum/#!msg/play-framework/Z97GQ2VnR5M/T-STGaeuN68J%5B1-25%5D und was noch wichtiger ist, die API-Dokumentation unter http://www.playframework.org/documentation/api/2.0.2/scala/index.html#play.api.mvc.Request

Wie Sie sehen, gibt es jetzt Unterstützung für Request.remoteAddress

Original:

Derzeit ist hierfür ein Fehler im Tracker offen: https://play.lighthouseapp.com/projects/82401/tickets/256-add-back-requestheaderremoteaddress

Ich denke, dass es derzeit die beste Lösung ist, die Play2.0-Bibliotheken zu hacken, um den verlinkten Patch einzubinden.Es ist wahrscheinlich immer noch sauberer als die Verwendung eines Proxys mit dem einzigen Zweck, XFF-Header hinzuzufügen und diese zur Ermittlung der IP zu verwenden.

Andere Tipps

Bitte überprüfen Sie dieses Github-Projekt bei https://github.com/orefalo/play2-xforward

Ich habe den Code von Play1 übernommen und portiert, um es zu spielen2, es sollte dasselbe funktionieren.

Immer noch eine Arbeit in Arbeit ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top