Wie kann ich die Client-IP eines Tornado Anfrage bekommen?
Frage
ich für eingehenden RequestHandler
s ein post()
Objekt habe. Wie kann ich die IP des Kunden, der die Anforderung finden? Ich habe die meisten RequestHandler
Methoden durchsucht und die Eigenschaften und scheinen etwas verpasst zu haben.
Lösung
RequestHandler.request.remote_ip
(von Request der Instanz)
können Sie die Antwort wie überprüfen:
...
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write(repr(self.request))
...
Andere Tipps
mykhal Antwort richtig ist, aber manchmal Ihre Anwendung hinter einem Proxy, zum Beispiel, wenn Sie nginx und uwsgi und Sie werden immer so etwas wie 127.0.0.1
für den Remote-IP erhalten. In diesem Fall müssen Sie die Header überprüfen, wie:
x_real_ip = self.request.headers.get("X-Real-IP")
remote_ip = x_real_ip or self.request.remote_ip
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow