How do I get the client IP of a Tornado request?

后端 未结 2 585
情深已故
情深已故 2020-12-09 02:09

I have a RequestHandler object for incoming post()s. How can I find the IP of the client making the request? I\'ve browsed most of

2条回答
  •  执念已碎
    2020-12-09 02:42

    mykhal's answer is right, however sometimes your application will be behind a proxy, for example if you use nginx and UWSGI and you will always get something like 127.0.0.1 for the remote IP. In this case you need to check the headers too, like:

    remote_ip = self.request.headers.get("X-Real-IP") or \
                self.request.headers.get("X-Forwarded-For") or \
                self.request.remote_ip
    

    Edit Oct 17th, 2019: include the commonly used header X-Forwarded-For which is used by AWS load balancers amongst others.

提交回复
热议问题