一个Django中间件,用于启用在ALLOWED_HOSTS中使用CIDR IP范围。
项目描述
一个Django中间件,用于启用在ALLOWED_HOSTS中使用CIDR IP范围。
快速入门
安装Django Allow CIDR
pip install django-allow-cidr
将中间件添加到您的MIDDLEWARE设置中。它应该是列表中的第一个
MIDDLEWARE = (
'allow_cidr.middleware.AllowCIDRMiddleware',
...
)
添加ALLOWED_CIDR_NETS设置
ALLOWED_CIDR_NETS = ['192.168.1.0/24']
完成!
功能
正常的ALLOWED_HOSTS值也将按预期工作。此中间件旨在增强,而不是替换,正常的Django功能。
如果您定义了ALLOWED_CIDR_NETS并且它有值,则中间件将捕获您在ALLOWED_HOSTS中的内容,将ALLOWED_HOSTS设置为[‘*’]并接管主机头的验证。
ALLOWED_CIDR_NETS的值可以是netaddr包的任何有效网络定义。
运行测试
代码真的能工作吗?
source <YOURVIRTUALENV>/bin/activate (myenv) $ pip install tox (myenv) $ tox
推送至PyPI
从GitHub创建新版本将触发CI检查,然后使用版本号自动发布到PyPI。请确保您的GitHub版本号与init.py中的项目版本匹配。
更多详情请参阅release任务中的.github/workflows/ci.yml。
致谢
用于渲染此包的工具
历史记录
0.7.1 (2023-07-10)
更新setup.cfg以重命名已弃用的licence_file参数
0.7.0 (2023-07-10)
添加IPv6支持 - 感谢@rissson!
添加Django 4.2到CI;刷新CI配置
0.6.0 (2023-01-05)
删除与开发相关的依赖项(包括未广泛使用的易受攻击的wheel版本)
现在我们通过GitHub自动发布,现在从setup.py中删除冗余代码
更新测试矩阵:删除Python 3.6;添加Python 3.11;添加Django 4.1
0.5.0 (2022-07-09)
用Python 3的ipaddress替换netaddr依赖项 - 感谢@n1ngu!
更新GH操作以发布到PyPI
0.4.1 (2022-06-13)
使用packaging.version来避免distutils已弃用的模块 - 感谢@adamantike!
0.4.0 (2022-02-22)
删除对非LTS和非最新Django的支持(因此删除了1.x、2.0、2.1、3.0、3.1)
删除对旧Python版本的支持(2.x、3.5)
将Django 4.0添加到tox的测试矩阵
将Python 3.7到3.10添加到tox的测试矩阵;3.6到3.10现在是唯一测试的版本
将CI切换到GitHub Actions
0.3.1 (2018-07-31)
修复问题#6:接受传递给Django >= 1.10的Middleware中的get_response函数。
发布更新的文档,修复了
ALLOWED_CIDR_NETS
的错别字。
0.3.0 (2018-02-21)
如果ALLOWED_HOSTS设置为['*'],则禁用中间件。
0.2.0 (2018-02-21)
处理带端口号的主机名(感谢Giorgos!)。
0.1.0 (2018-02-16)
首次发布在PyPI上。