gpt4 book ai didi

python - 部署代码时如何使用python flask 获取公共(public)和私有(private)IP地址?

转载 作者:行者123 更新时间:2023-12-03 16:55:46 30 4
gpt4 key购买 nike

我创建了一个 flask API。无论谁访问该 API,我都可以跟踪他们的 IP 地址。在我的情况下,我可以从任何连接到我在本地运行代码的互联网的系统跟踪本地 IP。我在运行 API 时部署了代码。它能够跟踪公共(public)地址。我希望在部署后跟踪公共(public)和本地 IP 地址。

即使在使用flask和python部署之后,有什么方法可以跟踪本地地址和公共(public)地址?

 from netifaces import interfaces, ifaddresses, AF_INET
for ifaceName in interfaces():
addresses = [i['addr'] for i in
ifaddresses(ifaceName).setdefault(AF_INET, [{'addr':'No IP addr'}] )]
print '%s: %s' % (ifaceName, ', '.join(addresses))

import socket
hostname = socket.gethostname()
IPAddr = socket.gethostbyname(hostname)

我尝试了所有这些但没有用无法获得我想要的输出
@app.route("/get_my_ip", methods=["GET"])
def get_my_ip():
return jsonify({'ip': request.environ['REMOTE_ADDR']}), 200

Result:10.0.0.1

代码部署后,我只能获得公共(public) IP。我需要跟踪本地 IP 和公共(public) IP。

例如:如果连接到一个 Internet 的 10 个不同系统使用已部署的 api,我应该获得 10 个不同的 IP 地址,但我得到的是所有人都通用的公共(public) IP。但我希望公共(public) IP 和本地 UP,例如来自一个系统的 106.89.78.90(公共(public) IP)10.0.0.1(私有(private) IP),然后来自另一个系统的 106.89.78.90/10.0.0.2,依此类推。

最佳答案

您需要设置您的服务器(nginx/apache/caddy 等),以便它添加一个特殊的 header X-Forwarded-For每个请求都有实际的 IP。

有关的:
Get IP address of visitors using Flask for Python

关于python - 部署代码时如何使用python flask 获取公共(public)和私有(private)IP地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56830685/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com