Simple middleware for filtering requests by their source IP address
Project description
Simple middleware for blocking requests by IP Address
Quickstart
Install Django Middlewall:
pip install django-middlewall
Add it to your INSTALLED_APPS:
INSTALLED_APPS = (
...
'middlewall.apps.MiddlewallConfig',
...
)
Enable middleware components:
# enable both white and black listing
MIDDLEWARE = [
'middlewall.middleware.BlacklistMiddleware',
'middlewall.middleware.WhitelistMiddleware',
...
]
Define access lists in CIDR notation:
# only allow requests from these subnets
MIDDLEWALL_WHITELIST = ['192.0.2.0/24', '198.51.100.0/24']
# also block this specific address
MIDDLEWALL_BLACKLIST = ['192.0.2.1/32']
(optional) Define a custom function to get remote addresses from request objects:
# take advantage of the X_FORWARDED_FOR support in ipware
MIDDLEWALL_ADDRESS_GETTER = 'ipware.ip.get_ip'
Running Tests
source <YOURVIRTUALENV>/bin/activate (myenv) $ pip install -e .[test] (myenv) $ pip install tox (myenv) $ tox
Credits
History
0.1.2 (2017-03-09)
General code clean up.
0.1.1 (2017-03-09)
First release.