Domanda

Ho un oggetto RequestHandler per post()s in arrivo. Come posso trovare il IP del client che effettua la richiesta? Ho navigato la maggior parte dei metodi e delle proprietà di RequestHandler e sembrano avere perso qualcosa.

È stato utile?

Soluzione

RequestHandler.request.remote_ip (da esempio di RequestHandler)

si può controllare la risposta del tipo:

...
class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write(repr(self.request))
...

Altri suggerimenti

La risposta di mykhal è giusto, però a volte la vostra applicazione sarà dietro un proxy, per esempio se si utilizza nginx e UWSGI e sarai sempre ottenere qualcosa di simile 127.0.0.1 per l'IP remoto. In questo caso è necessario controllare le intestazioni troppo, come:

x_real_ip = self.request.headers.get("X-Real-IP")
remote_ip = x_real_ip or self.request.remote_ip
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top