mirror of
https://github.com/KevinMidboe/Node-Com-Handler.git
synced 2025-10-29 17:50:27 +00:00
39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
# @Author: KevinMidboe
|
|
# @Date: 2016-11-22 12:07:08
|
|
# @Last Modified by: KevinMidboe
|
|
# @Last Modified time: 2016-11-28 08:14:35
|
|
|
|
import geoip2.database
|
|
import ipaddress, os
|
|
|
|
class ipLookup(object):
|
|
"""docstring for ipLookup"""
|
|
def __init__(self, address):
|
|
super(ipLookup, self).__init__()
|
|
self.databaseLocation = 'GeoLiteDatabases/city.mmdb'
|
|
self.address = ipaddress.ip_address(address)
|
|
self.version = self.address.version
|
|
self.getLocation()
|
|
|
|
def getLocation(self):
|
|
reader = geoip2.database.Reader(self.databaseLocation)
|
|
response = reader.city(self.address)
|
|
self.country = response.country.name
|
|
self.city = response.city.name
|
|
self.region = response.subdivisions.most_specific.name
|
|
self.postcode = response.postal.code
|
|
|
|
def changeDatabase(self, database):
|
|
newDatabaseLocation = 'GeoLiteDatabases/'+database+'.mmdb'
|
|
if os.path.isfile(newDatabaseLocation):
|
|
self.databaseLocation = newDatabaseLocation
|
|
else:
|
|
raise NameError('File '+newDatabaseLocation+' does not exist')
|
|
|
|
def getDatabaseLocation(self):
|
|
return self.databaseLocation
|
|
|
|
def __str__(self):
|
|
return str(self.__class__) + ": " + str(self.__dict__) |