1
0
UAHCode/CPE449/geolocation/geoip.py

41 lines
1.1 KiB
Python

import pygeoip
import re as regex
ipAddrList = { }
ipAddrCountry = { }
geoip = pygeoip.GeoIP('GeoIP.dat')
loginFile = open("logins.txt")
loginList = loginFile.readlines()
ipAddrRegex = regex.compile(r'(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})')
uniqueIPs = 0
uniqueIPsByCountry = 0
for login in loginList:
ipAddr = regex.split(ipAddrRegex, login)
ip = ipAddr[1]
if ip in ipAddrList:
country = geoip.country_code_by_addr(ip)
if country not in ipAddrCountry.values():
uniqueIPsByCountry += 1
ipAddrList[ip] += 1
else:
country = geoip.country_code_by_addr(ip)
if country not in ipAddrCountry.values():
uniqueIPsByCountry += 1
ipAddrCountry[ip] = country
uniqueIPs+=1
ipAddrList[ip] = 1
print("IP Addresses by count:")
for ipCount in ipAddrList:
print(ipCount,":", ipAddrList.get(ipCount))
print("IP Addresses by country:")
for ipCountry in ipAddrCountry:
print(ipCountry, ":", ipAddrCountry.get(ipCountry))
print("\nNumber of unique IP addresses: ", uniqueIPs, "\n")
print("\nNumber of unique IP addresses by Country: ", uniqueIPsByCountry, "\n")