[PYTHON] Tornado 요청의 클라이언트 IP는 어떻게 얻습니까?
PYTHONTornado 요청의 클라이언트 IP는 어떻게 얻습니까?
들어오는 post ()에 대한 RequestHandler 객체가 있습니다. 요청하는 클라이언트의 IP를 어떻게 찾을 수 있습니까? 나는 RequestHandler의 메소드와 프로퍼티의 대부분을 찾아보고 뭔가를 놓친 것처럼 보인다.
해결법
-
==============================
1.RequestHandler.request.remote_ip (RequestHandler의 인스턴스에서 가져옴)
RequestHandler.request.remote_ip (RequestHandler의 인스턴스에서 가져옴)
다음과 같이 응답을 검사 할 수 있습니다.
... class MainHandler(tornado.web.RequestHandler): def get(self): self.write(repr(self.request)) ...
-
==============================
2.mykhal의 대답은 맞습니다. 그러나 때때로 nginx와 UWSGI를 사용하고 원격 IP에 대해 항상 127.0.0.1과 같은 것을 얻을 수있는 경우, 애플리케이션이 프록시 뒤에있을 수 있습니다. 이 경우 다음과 같이 헤더도 확인해야합니다.
mykhal의 대답은 맞습니다. 그러나 때때로 nginx와 UWSGI를 사용하고 원격 IP에 대해 항상 127.0.0.1과 같은 것을 얻을 수있는 경우, 애플리케이션이 프록시 뒤에있을 수 있습니다. 이 경우 다음과 같이 헤더도 확인해야합니다.
x_real_ip = self.request.headers.get("X-Real-IP") remote_ip = x_real_ip or self.request.remote_ip
from https://stackoverflow.com/questions/3110919/how-do-i-get-the-client-ip-of-a-tornado-request by cc-by-sa and MIT license