【问题标题】:How to get ipv6 address in flask?如何在烧瓶中获取 ipv6 地址?
【发布时间】:2019-01-16 11:59:55
【问题描述】:
每当我的 api 端点被命中时,我都会尝试获取客户端的 ipv6(如果存在)或 ipv4 地址。代码如下:
from flask import request
from flask import jsonify
@app.route("/ip", methods=["GET"])
def ip():
return jsonify({'ip': request.remote_addr})
但是目前只返回客户端的ipv4地址。是否可以获取客户端的 ipv6 地址?
【问题讨论】:
标签:
python
networking
flask
ip
【解决方案1】:
您可以指定一个 ipv6 地址来启动您的应用程序
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def index():
return "hello there %s" % request.remote_addr
app.run(host='::')
对于http://127.0.0.1:5000/,这将产生
你好 ::ffff:127.0.0.1
然后输出
* Running on http://[::]:5000/ (Press CTRL+C to quit)
::ffff:127.0.0.1 - - [09/Aug/2018 10:06:45] "GET / HTTP/1.1" 200 -
对于http://localhost:5000/
你好 ::1
和
* Running on http://[::]:5000/ (Press CTRL+C to quit)
::1 - - [09/Aug/2018 10:11:25] "GET / HTTP/1.1" 200 -