mirror of
https://github.com/KevinMidboe/Node-Com-Handler.git
synced 2025-10-29 17:50:27 +00:00
Created files that make classes containing info from geoLite ip database
based on given IP address
This commit is contained in:
39
ipLookup.py
Normal file
39
ipLookup.py
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
#!/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__)
|
||||||
18
testIpLookup.py
Executable file
18
testIpLookup.py
Executable file
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# @Author: KevinMidboe
|
||||||
|
# @Date: 2016-11-22 12:18:17
|
||||||
|
# @Last Modified by: KevinMidboe
|
||||||
|
# @Last Modified time: 2016-12-01 20:12:48
|
||||||
|
|
||||||
|
import ipLookup
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
ipList = {}
|
||||||
|
ip = '91.22.128.66'
|
||||||
|
ip = '85.164.178.87'
|
||||||
|
if ip not in ipList:
|
||||||
|
ipList.update({ip:ipLookup.ipLookup(ip)})
|
||||||
|
|
||||||
|
address = ipList[ip]
|
||||||
|
print(address)
|
||||||
Reference in New Issue
Block a user