我有一个RequestHandler传入post()的对象.如何找到发出请求的客户端的IP?我浏览了大部分RequestHandler的方法和属性,似乎错过了一些东西.
myk*_*hal 49
RequestHandler.request.remote_ip (来自RequestHandler的实例)
你可以检查响应,如:
...
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write(repr(self.request))
...
Run Code Online (Sandbox Code Playgroud)
3k-*_*3k- 30
mykhal的答案是正确的,但有时你的应用程序将在代理后面,例如,如果你使用nginx和UWSGI,你将总是获得类似127.0.0.1远程IP的东西.在这种情况下,您还需要检查标题,例如:
remote_ip = self.request.headers.get("X-Real-IP") or \
self.request.headers.get("X-Forwarded-For") or \
self.request.remote_ip
Run Code Online (Sandbox Code Playgroud)