Skip to content

Instantly share code, notes, and snippets.

@bbopen
Created August 3, 2015 17:14
Show Gist options
  • Save bbopen/f94e407cef881085599f to your computer and use it in GitHub Desktop.
Save bbopen/f94e407cef881085599f to your computer and use it in GitHub Desktop.
inefficient way to code a sorted list of ip address integers to a range of integers
import sys, csv
idx = 0
with open('ipintegers_sorted.csv','r') as ipcsvinput:
with open('geoiplite_sorted.csv','r') as geoipcsvinput:
ipreader = csv.DictReader(ipcsvinput, delimiter=',', fieldnames = ("ipstring","ipinteger") )
geoipreader = list(csv.DictReader(geoipcsvinput, delimiter=',', fieldnames = ("network_start_ip","network_last_ip","network_start_integer","network_last_integer","geoname_id","is_satellite_provider","is_anonymous_proxy","postal_code","latitude","longitude")))
for iprow in ipreader:
ipinteger = int(iprow['ipinteger'])
ipstring = iprow['ipstring']
for geoiprow in geoipreader[idx:]:
geoipstartstring = geoiprow['network_start_ip']
geoiplaststring = geoiprow['network_last_ip']
geoipstartinteger = int(geoiprow['network_start_integer'])
geoiplastinteger = int(geoiprow['network_last_integer'])
geoiplatitude = geoiprow['latitude']
geoiplongitude = geoiprow['longitude']
geoipgeonameid = geoiprow['geoname_id']
geoippostalcode = geoiprow['postal_code']
if geoipstartinteger <= ipinteger <= geoiplastinteger:
print(ipstring,ipinteger,geoiplatitude,geoiplongitude,geoipgeonameid,geoippostalcode,sep=",")
break
elif geoipstartinteger < ipinteger:
idx += 1
continue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment