解析X-Forwarded-用于在Heroku上获取werkzeug的ip

Jac*_* P. 6 python ip heroku werkzeug flask

Heroku代理从客户端到服务器的请求,因此您必须解析X-Forwarded-For以查找原始IP地址.

X-Forwarded-For的一般格式是:

X-Forwarded-For: client1, proxy1, proxy2
Run Code Online (Sandbox Code Playgroud)

在烧瓶上使用werkzeug,我试图想出一个解决方案,以便访问客户端的原始IP.

有谁知道这样做的好方法?

谢谢!

Sea*_*ira 15

Werkzeug(和Flask)将头文件存储在一个实例中werkzeug.datastructures.Headers.你应该可以做这样的事情:

provided_ips = request.headers.getlist("X-Forwarded-For")
# The first entry in the list should be the client's IP.
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用request.access_route(感谢@Bastian指出这一点!):

provided_ips = request.access_route
# First entry in the list is the client's IP
Run Code Online (Sandbox Code Playgroud)