# Requirements: # Python 2.7 import sys import GeoIP gi = GeoIP.open("/usr/share/GeoIP/GeoIP.dat", GeoIP.GEOIP_STANDARD) filename_ips = sys.argv[1] country_cnt = {} ips_all = set() fd_read = open(filename_ips, "r") cnt = 0 cnt_unique = 0 for ip in fd_read: cnt += 1 ip = ip.strip() if ip in ips_all: continue cnt_unique += 1 ips_all.add(ip) match = gi.country_name_by_addr(ip) if match is None: print("could not resolve: %s" % ip) continue country = match try: country_cnt[country] += 1 except: country_cnt[country] = 1 fd_read.close() print("Total: %d" % cnt) print("Unique: %d" % cnt_unique) print("Resolved: %d" % sum([count for country,count in country_cnt.items()])) print("") country_cnt_sorted = sorted(country_cnt.items(), key=lambda v: v[1]) for country, cnt in country_cnt_sorted: print("%s: %d" % (country, cnt))