forked from 0x2620/pandora
use geoip2 api to fix ipv6 lookups
This commit is contained in:
parent
340277db1a
commit
4613005b83
4 changed files with 13 additions and 13 deletions
|
@ -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):
|
||||||
|
|
|
@ -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'])
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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()
|
||||||
|
|
Loading…
Reference in a new issue