当前位置:   article > 正文

Python+Flask设置ip白名单

Python+Flask设置ip白名单

一、背景

基于 Flask 开发了一些 API接口,接口的控制需要访问权限,防止外部用户随意调用。

二、方案

获取请求方ip,然后判断此 ip 是否在白名单列表里面,如果不在则拒绝请求,这个白名单信息最好是可以通过动态更新或者数据库来维护,不然每次新增都需要上线操作,比较麻烦,代码示例如下:

  1. # -*- coding: utf-8 -*-
  2. from flask import Flask, request
  3. from logzero import logger
  4. # 创建Flask的应用程序
  5. app = Flask(__name__)
  6. # ip白名单
  7. ip_whitelist = ["10.13.12.136", "10.23.56.135"]
  8. # 以装饰器形式绑定路由
  9. @app.route('/')
  10. def hello_world():
  11. # 获取请求来源ip
  12. ip = request.remote_addr
  13. logger.info("ip: {}".format(ip))
  14. if ip not in ip_whitelist:
  15. return 'ip is not in whitelist!'
  16. return 'Hello World!'
  17. if __name__ == '__main__':
  18. # 启动flask程序
  19. app.run(host="0.0.0.0", debug=True, port=8765)

根据机器名字获取 ip 信息:

  1. 获取ip
  2. import socket
  3. host_ip = socket.gethostbyname

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/499286
推荐阅读
相关标签
  

闽ICP备14008679号