GeoIP based redirection middleware
Project description
[![Build Status](https://travis-ci.org/vinitkumar/django-geoip-redirection.svg?branch=master)](https://travis-ci.org/vinitkumar/django-geoip-redirection)
Django-geoip-redirection
========================
![World Map](https://i.cloudup.com/7rf2v_IDxv-2000x2000.png)
GeoIP based redirection is awesome and achieving it isn't too hard either. I wrote this middleware
to ensure that my website would get redirected properly with regards to the location of the user
accessing the website.
## Usage:
Add the middleware in your settings file:
```python
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'cms.middleware.language.LanguageCookieMiddleware',
'django_geoip_redirection.middleware.LocationMiddleWare',
)
```
Also add `django_geoip_redirection` to INSTALLED APPS:
```python
INSTALLED_APPS = (
'django_geoip_redirection',
....
)
```
## Customization:
```python
# Change the array for extension as per country you
# have to support
if request.path[:4] in ["/en/", "/nl/", "/in/"]:
return None
if 'HTTP_X_FORWARDED_FOR' in request.META:
request.META['REMOTE_ADDR'] = request.META['HTTP_X_FORWARDED_FOR']
ip_address = request.META['REMOTE_ADDR']
# get country name using Maxmind database.
# Now, just match and redirect.
# Likewise, replace the name of country to match and redirect.
country = get_country_request(ip_address)
if country == "India":
return HttpResponseRedirect('/in/')
elif country == "Netherlands":
return HttpResponseRedirect('/nl/')
else:
return HttpResponseRedirect('/en/')
return None
```
You would also need to place the `GeoIP.dat.dat` present inside the data folder to
your project root directory.
Django-geoip-redirection
========================
![World Map](https://i.cloudup.com/7rf2v_IDxv-2000x2000.png)
GeoIP based redirection is awesome and achieving it isn't too hard either. I wrote this middleware
to ensure that my website would get redirected properly with regards to the location of the user
accessing the website.
## Usage:
Add the middleware in your settings file:
```python
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'cms.middleware.language.LanguageCookieMiddleware',
'django_geoip_redirection.middleware.LocationMiddleWare',
)
```
Also add `django_geoip_redirection` to INSTALLED APPS:
```python
INSTALLED_APPS = (
'django_geoip_redirection',
....
)
```
## Customization:
```python
# Change the array for extension as per country you
# have to support
if request.path[:4] in ["/en/", "/nl/", "/in/"]:
return None
if 'HTTP_X_FORWARDED_FOR' in request.META:
request.META['REMOTE_ADDR'] = request.META['HTTP_X_FORWARDED_FOR']
ip_address = request.META['REMOTE_ADDR']
# get country name using Maxmind database.
# Now, just match and redirect.
# Likewise, replace the name of country to match and redirect.
country = get_country_request(ip_address)
if country == "India":
return HttpResponseRedirect('/in/')
elif country == "Netherlands":
return HttpResponseRedirect('/nl/')
else:
return HttpResponseRedirect('/en/')
return None
```
You would also need to place the `GeoIP.dat.dat` present inside the data folder to
your project root directory.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Close
Hashes for django_geoip_redirection-0.1.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 086ec69621c7f6e014ad5f59b40a288cd2bddcb58ea872fe97ddb97b1b1bbeaf |
|
MD5 | 77c610f551b2188ac988509d33382928 |
|
BLAKE2b-256 | ef4aafd7795da44001e9a2242afd030873deb1f8e1f8f89ca06d4c6a8c299996 |