GeoPyP/PyGeoIP.py
2018-12-29 10:14:05 +11:00

58 lines
1.4 KiB
Python

#!/usr/bin/python3
import ipwhois
from ipwhois.net import Net
from ipwhois.asn import IPASN
import warnings
ipList = []
def lookupIP(inData):
try:
with warnings.catch_warnings():
warnings.filterwarnings("ignore", category=UserWarning)
ipnet = Net(inData)
ipobj = IPASN(ipnet)
results = ipobj.lookup()
# print(results)
return results
except ipwhois.exceptions.IPDefinedError:
pass # We do not care about local/invalid IPs
except Exception as e:
pass # Garbage data was given lol
def parseIPS():
with open("ips.txt", 'r') as f:
testdata = f.read()
data = testdata.split('\n')
for ip in data:
ip = ip.strip()
ipAddr = ip.split()
if len(ipAddr) == 2:
ipList.append(ipAddr)
else:
pass
parseIPS()
for ips in ipList:
# ccode = ipCheck(lookupIP(ips[1]))
ret = lookupIP(ips[1])
if ret == None:
continue
cc = ret["asn_country_code"]
desc = ret["asn_description"]
if cc == "AU" or cc == "NZ" or cc == "US":
continue
print("IP: {}\t\tCountry: {}\tDesc: {}\tCount: {}".format(ips[1], cc, desc, ips[0]))
# print(ipList[0])
# lookupIP("123.23.23.12")
##{'asn_registry': 'apnic', 'asn': '4134', 'asn_cidr': '220.174.0.0/16', 'asn_country_code': 'CN', 'asn_date': '2002-10-30', 'asn_description': 'CHINANET-BACKBONE No.31,Jin-rong Street, CN'}