在 Flask 中使用开发服务器时获取客户端 IP 地址
Getting Client IP address while using development server in Flask
我在做什么
我有一个 Flask 网站,我正在使用 ngrok 隧道让客户可以访问它。
我想要的
我正在尝试获取客户端的 IP 地址。
到目前为止我做了什么
到目前为止我已经试过了,
request.environ.get('HTTP_X_REAL_IP', request.remote_addr)
和
request.environ['REMOTE_ADDR']
但他们都返回 127.0.0.1。我也检查了这个 question 但它并没有帮助我,因为那里写的答案是在生产服务器环境中获取客户端 IP,而我正在寻找任何方法来获取客户端的 IP 地址使用 ngrok 建立隧道的服务器开发模式。
我想到了两种可能的方法,
- 如果我能从 Ngrok 得到连接请求者的 IP 地址。我不知道有什么办法可以做到,但这可以解决我的问题。
- 或者我在我的 javascript 代码中添加一些东西,这样每当索引页面加载时,它就会向服务器发送一个 ajax 请求,告诉它客户端的 IP 地址。 (有错请指正)
在 Flask 的情况下,您无法直接在服务器端获取客户端 IP 地址,但是如果您的 Web 应用程序获取客户端 IP 然后使用 AJAX 请求将其发送回,则您无法获取 IP 地址服务器,以便您可以记录它。
这是我认为你可以在烧瓶中做到这一点的唯一可能方式。
我在做什么
我有一个 Flask 网站,我正在使用 ngrok 隧道让客户可以访问它。
我想要的
我正在尝试获取客户端的 IP 地址。
到目前为止我做了什么
到目前为止我已经试过了,
request.environ.get('HTTP_X_REAL_IP', request.remote_addr)
和
request.environ['REMOTE_ADDR']
但他们都返回 127.0.0.1。我也检查了这个 question 但它并没有帮助我,因为那里写的答案是在生产服务器环境中获取客户端 IP,而我正在寻找任何方法来获取客户端的 IP 地址使用 ngrok 建立隧道的服务器开发模式。
我想到了两种可能的方法,
- 如果我能从 Ngrok 得到连接请求者的 IP 地址。我不知道有什么办法可以做到,但这可以解决我的问题。
- 或者我在我的 javascript 代码中添加一些东西,这样每当索引页面加载时,它就会向服务器发送一个 ajax 请求,告诉它客户端的 IP 地址。 (有错请指正)
在 Flask 的情况下,您无法直接在服务器端获取客户端 IP 地址,但是如果您的 Web 应用程序获取客户端 IP 然后使用 AJAX 请求将其发送回,则您无法获取 IP 地址服务器,以便您可以记录它。 这是我认为你可以在烧瓶中做到这一点的唯一可能方式。