我有一个RequestHandler
对象用于传入post()
。如何找到发出请求的客户的 IP ?我浏览了大多数RequestHandler
的方法和属性,似乎错过了一些东西。
答案 0 :(得分:47)
RequestHandler.request.remote_ip
(来自RequestHandler的实例)
您可以检查响应,如:
...
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write(repr(self.request))
...
答案 1 :(得分:26)
mykhal的答案是正确的,但有时您的应用程序将位于代理服务器后面,例如,如果您使用nginx和UWSGI,并且您将始终获得类似127.0.0.1
的远程IP。在这种情况下,您还需要检查标题,例如:
x_real_ip = self.request.headers.get("X-Real-IP")
remote_ip = x_real_ip or self.request.remote_ip