use geoip2 api to fix ipv6 lookups

This commit is contained in:
j 2016-03-04 12:50:44 +05:30
parent 340277db1a
commit 4613005b83
4 changed files with 13 additions and 13 deletions

View file

@ -308,17 +308,9 @@ def update_static():
os.symlink(default_script, script) os.symlink(default_script, script)
def update_geoip(force=False): def update_geoip(force=False):
path = os.path.join(settings.GEOIP_PATH, 'GeoLiteCity.dat') path = os.path.join(settings.GEOIP_PATH, 'GeoLite2-City.mmdb')
if not os.path.exists(path) or force: if not os.path.exists(path) or force:
url = 'http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz' url = 'http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz'
print('download', url)
ox.net.save_url(url, "%s.gz"%path)
if os.path.exists(path):
os.unlink(path)
os.system('gunzip "%s.gz"' % path)
path = os.path.join(settings.GEOIP_PATH, 'GeoLiteCityv6.dat')
if not os.path.exists(path) or force:
url = 'http://geolite.maxmind.com/download/geoip/database/GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz'
print('download', url) print('download', url)
ox.net.save_url(url, "%s.gz"%path) ox.net.save_url(url, "%s.gz"%path)
if os.path.exists(path): if os.path.exists(path):

View file

@ -7,7 +7,8 @@ from django.contrib.auth.models import User, Group
from django.db import models from django.db import models
from django.db.models import Max from django.db.models import Max
from django.conf import settings from django.conf import settings
from django.contrib.gis.geoip import GeoIP from django.contrib.gis.geoip2 import GeoIP2
import ox import ox
@ -66,7 +67,7 @@ class SessionData(models.Model):
self.parse_useragent() self.parse_useragent()
if self.ip: if self.ip:
try: try:
g = GeoIP() g = GeoIP2()
location = g.city(self.ip) location = g.city(self.ip)
if location: if location:
country = ox.get_country_name(location['country_code']) country = ox.get_country_name(location['country_code'])

View file

@ -6,5 +6,6 @@ django-celery==3.1.17
django-extensions==1.6.1 django-extensions==1.6.1
gunicorn==19.4.5 gunicorn==19.4.5
html5lib html5lib
requests==2.2.1 requests==2.9.1
tornado==4.1 tornado==4.1
geoip2==2.2.0

View file

@ -191,6 +191,12 @@ if __name__ == "__main__":
if os.path.exists('/lib/systemd/system'): if os.path.exists('/lib/systemd/system'):
print('\tsudo cp %s/etc/systemd/%s.service /lib/systemd/system/' % (base, service)) print('\tsudo cp %s/etc/systemd/%s.service /lib/systemd/system/' % (base, service))
print('\tsudo service %s restart' % service) print('\tsudo service %s restart' % service)
if old <= 5432:
import pandora.settings
run('./bin/pip', 'install', '-r', 'requirements.txt')
path = os.path.join(pandora.settings.GEOIP_PATH, 'GeoLite2-City.mmdb')
if not os.path.exists(path):
run('./pandora/manage.py', 'update_geoip')
else: else:
if len(sys.argv) == 1: if len(sys.argv) == 1:
release = get_release() release = get_release()