我有一个RequestHandler
传入post()
s 的对象。如何找到发出请求的客户端的IP ?我浏览了大部分RequestHandler
的方法和属性,似乎遗漏了一些东西。
问问题
24521 次
2 回答
50
RequestHandler.request.remote_ip
(来自 RequestHandler 的实例)
您可以检查响应,例如:
...
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write(repr(self.request))
...
于 2010-06-24T15:58:13.117 回答
34
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
X-Forwarded-For
2019 年 10 月 17 日编辑:包括AWS 负载均衡器等使用的常用标头。
于 2015-03-10T09:04:50.530 回答