赞
踩
基于 Flask 开发了一些 API接口,接口的控制需要访问权限,防止外部用户随意调用。
获取请求方ip,然后判断此 ip 是否在白名单列表里面,如果不在则拒绝请求,这个白名单信息最好是可以通过动态更新或者数据库来维护,不然每次新增都需要上线操作,比较麻烦,代码示例如下:
- # -*- coding: utf-8 -*-
- from flask import Flask, request
- from logzero import logger
-
- # 创建Flask的应用程序
- app = Flask(__name__)
-
- # ip白名单
- ip_whitelist = ["10.13.12.136", "10.23.56.135"]
-
- # 以装饰器形式绑定路由
- @app.route('/')
- def hello_world():
- # 获取请求来源ip
- ip = request.remote_addr
- logger.info("ip: {}".format(ip))
-
- if ip not in ip_whitelist:
- return 'ip is not in whitelist!'
-
- return 'Hello World!'
-
- if __name__ == '__main__':
- # 启动flask程序
- app.run(host="0.0.0.0", debug=True, port=8765)
根据机器名字获取 ip 信息:
- 获取ip
- import socket
- host_ip = socket.gethostbyname
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。