我有一个RequestHandler
对象用于传入的post()
。如何找到发出请求的客户端的IP?我浏览了RequestHandler
的大多数方法和属性,似乎错过了一些东西。
RequestHandler.request.remote_ip
(来自RequestHandler的实例)
您可以检查响应,例如:
...
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write(repr(self.request))
...
mykhal的答案是正确的,但是有时您的应用程序将位于代理之后,例如,如果您使用nginx和UWSGI,并且对于远程IP总是会得到类似127.0.0.1
的信息。在这种情况下,您还需要检查标题,例如:
remote_ip = self.request.headers.get("X-Real-IP") or \
self.request.headers.get("X-Forwarded-For") or \
self.request.remote_ip
2019年10月17日编辑:包括AWS负载均衡器使用的常用标头X-Forwarded-For
。