Pregunta

Tengo un objeto RequestHandler para post()s entrantes. ¿Cómo puedo encontrar el IP del cliente que realiza la solicitud? He navegado por la mayoría de los métodos y propiedades de RequestHandler y parecen tener perdido algo.

¿Fue útil?

Solución

RequestHandler.request.remote_ip (de ejemplo de RequestHandler)

Puede inspeccionar la respuesta como:

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

Otros consejos

La respuesta de mykhal es correcto, sin embargo a veces la aplicación va a estar detrás de un proxy, por ejemplo si se utiliza nginx y UWSGI y siempre obtendrá algo así como 127.0.0.1 para la IP remota. En este caso es necesario comprobar las cabeceras también, como:

x_real_ip = self.request.headers.get("X-Real-IP")
remote_ip = x_real_ip or self.request.remote_ip
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top