Flask中的远程客户端IP地址

时间:2017-06-01 15:03:03

标签: python flask

如何在Apache上运行Flask中的远程/客户端IP?我的web服务是负载均衡器的后面,因此request.remote_addr给出了负载均衡器IP而不是客户端IP。

2 个答案:

答案 0 :(得分:1)

您可以像这样获得远程客户端IP:

remote_ip = request.headers.get('X-Forwarded-For')
if not remote_ip:
    remote_ip = request.remote_addr

替代方法:

remote_ip = request.environ.get('HTTP_X_FORWARDED_FOR')
if not remote_ip:
    remote_ip = request.environ.get('REMOTE_ADDR')

答案 1 :(得分:0)

如果您的平衡器符合rf7239标准,则应发送Forwarded标头,如果不是,则可能会发送X-Forwarded-For。检查这些标头中的任何标头,而不是REMOTE_ADDR