A Django Middleware to enable use of CIDR IP ranges in ALLOWED_HOSTS.
Install Django Allow CIDR:
pip install django-allow-cidr
Add the Middleware to your MIDDLEWARE
settings. It should be the first in the list:
MIDDLEWARE = (
'allow_cidr.middleware.AllowCIDRMiddleware',
...
)
Add the ALLOWED_CIDR_NETS
setting:
ALLOWED_CIDR_NETS = ['192.168.1.0/24']
Profit!
- The normal
ALLOWED_HOSTS
values will also work as intended. This Middleware is intended to augment, not replace, the normal Django function. - If you do define
ALLOWED_CIDR_NETS
and it has values, the middleware will capture what you have in ALLOWED_HOSTS, setALLOWED_HOSTS
to ['*'] and take over validation of host headers. - The
ALLOWED_CIDR_NETS
values can be any valid network definition for the netaddr package.
Does the code actually work?
source <YOURVIRTUALENV>/bin/activate (myenv) $ pip install tox (myenv) $ tox
Tools used in rendering this package: