代理可以使这有点棘手,请确保检查
ProxyFix
(
Flask docs
)如果你在用的话。看一看
request.environ
在你特定的环境中。有了nginx,我有时会这样做:
from flask import request
request.environ.get('HTTP_X_REAL_IP', request.remote_addr)
当代理(如nginx)转发地址时,它们通常会在请求头的某个位置包含原始ip。
更新
See the flask-security implementation
. 同样,在实现之前,请查看有关proxyfix的文档。您的解决方案可能因您的特定环境而异。