我正在制作一个网站,用户可以使用 Flask 微框架(基于 Werkzeug )登录并下载文件,该框架使用 Python(在我的例子中是 2.6)。
我需要在用户登录时获取他们的 IP 地址(用于记录目的)。有谁知道如何做到这一点?当然有办法用 Python 做到这一点?
原文由 Jon Cox 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在制作一个网站,用户可以使用 Flask 微框架(基于 Werkzeug )登录并下载文件,该框架使用 Python(在我的例子中是 2.6)。
我需要在用户登录时获取他们的 IP 地址(用于记录目的)。有谁知道如何做到这一点?当然有办法用 Python 做到这一点?
原文由 Jon Cox 发布,翻译遵循 CC BY-SA 4.0 许可协议
代理会使这有点棘手,如果您正在使用代理,请务必查看 ProxyFix ( Flask 文档)。在您的特定环境中查看 request.environ
。使用 nginx,我有时会做这样的事情:
from flask import request
request.environ.get('HTTP_X_REAL_IP', request.remote_addr)
当代理(例如 nginx)转发地址时,它们通常会在请求标头中的某处包含原始 IP。
更新 见烧瓶安全实施。同样,在实施之前查看有关 ProxyFix 的文档。您的解决方案可能因您的特定环境而异。
原文由 Stephen Fuhry 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答861 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
请参阅有关 如何访问 Request 对象 的文档,然后从同一个 Request 对象获取属性
remote_addr
。代码示例
有关详细信息,请参阅 Werkzeug 文档。