六、搭建查询IP地址接口
pipenv install geoip2 flask
这个库是为了将IP地址翻译成具体的地址信息
下载需要注册... URL: https://www.maxmind.com/en/accounts/current/people/current
(test001) [root@k3s-master test001]# tree
.
├── app.py
├── GeoLite2-City.mmdb
├── Pipfile
└── Pipfile.lock
app.py
from flask import Flask, jsonify, request
import geoip2.database
app = Flask(__name__)
app.debug = False
@app.route('/', methods=['GET'])
def index():
if 'ip' in request.args:
ip = request.args.get('ip')
else:
ip = request.remote_addr
try:
reader = geoip2.database.Reader(r'./GeoLite2-City.mmdb')
response = reader.city(ip)
iso_code = response.country.iso_code
country = response.country.name
city = response.city.name
reader.close()
result = {'code': 200,'msg': 'success','iso_code': iso_code, 'country': country, 'city':city}
except:
result = {'code': 400, 'msg': 'not found'}
return jsonify(result)
if __name__ == '__main__':
app.run()
python3 app.py
[root@k3s-master ~]# curl 127.0.0.1:5000/?ip=156.255.3.xx
{"city":"Central","code":200,"country":"Hong Kong","iso_code":"HK","msg":"success"}
[root@k3s-master ~]# curl 127.0.0.1:5000/?ip=220.181.38.148
{"city":null,"code":200,"country":"China","iso_code":"CN","msg":"success"}
Last updated