Requirements and Installation


  • Django 1.8+

Additionally, if you would like to use country based restrictions you will need:

  • pycountry
  • MaxMind geoip or geoip2 libraries as described in the Django documentation. Links below.

In case you are on at least Django 1.9 or newer, you should configure geoip2, if you are on Django 1.8 you have to use and configure geoip.


You can pip install from PyPI:

pip install django-iprestrict

The country based lookups are optional, if you need it you can install them with:

pip install django-iprestrict[geoip]

Note: if you’re not using the country based lookups you will have to set the IPRESTRICT_GEOIP_ENABLED setting to False in your See: IPRESTRICT_GEOIP_ENABLED.


For development create a virtualenv, activate it and then:

pip install -e .[geoip,dev]

To run the tests against the python and Django in your virtualenv:


To run the tests against all combinations of python 2, python 3, and supported Django versions:


This will also run flake8.