如何在 Cloud-Run Flask 应用程序中获取用户的 IP 地址?

nil*_*lsf 4 python flask google-cloud-run

我有一个通过 Google Cloud Run 运行的 Flask 应用程序,我需要知道用户的 IP 地址。我正在使用 Gunicorn 作为我的服务器。我尝试过以下代码:

request.remote_addr
request.environ['REMOTE_ADDR']
request.environ.get('HTTP_X_REAL_IP', request.remote_addr)
Run Code Online (Sandbox Code Playgroud)

它返回这个 IP 地址:169.254.8.129不是我的。这可能是应用程序和用户之间负载均衡器的 IP 吗?

有没有一种方法可以获得正确的 IP 地址而无需使用额外的服务?

gui*_*ere 8

您拥有 Google 提供的标头。在我的测试中我得到了这 2 个:

X-Forwarded-For: [MyPubliCIp, LoadBalancerIp,MyPubliCIp]
Forwarded: [for="MyPubliCIp";proto=http]
Run Code Online (Sandbox Code Playgroud)

根据需要使用它们。