And in case you prefer a "patch" file...
--- orig/geoip.py 2011-03-16 15:11:21.000000000 -0700
+++ geoip.py 2011-03-16 16:13:32.000000000 -0700
@@ -4,7 +4,7 @@
from string import atoi
import socket, struct, csv
-ATTRIBUTES = ['countrycode', 'countryname', 'regioncode', 'regionname', 'city', 'zipcode', 'latitude', 'longitude']
+ATTRIBUTES = ['countrycode', 'countryname', 'region', 'city', 'latitude', 'longitude', 'zipcode', 'timezone']
MAP_BLOCK_SIZE=64
DB_FILE = os.path.join(os.environ['SPLUNK_HOME'], 'etc', 'apps', 'maps', 'lib', 'ip_group_city.csv')
@@ -51,7 +51,7 @@
if not line: break
i=i+1
if i % MAP_BLOCK_SIZE == 0:
- val = atoi(line.split(";")[0].strip('"'), 10)
+ val = atoi(line.split(",")[0].strip('"'), 10)
k.append(val)
v.append(pos)
f = open(IDX_FILE, "wb")
@@ -75,8 +75,8 @@
def read_record(l):
if l:
- row = [ x.strip('"') for x in l.strip().split(";") ]
- return [atoi(row[0]), row[1:]]
+ row = [ x.strip('"') for x in l.strip().split(",") ]
+ return [atoi(row[0]), atoi(row[1]), row[2:]]
def get_records(idx, n):
v = idx_v[idx]
@@ -98,8 +98,8 @@
r = get_records(i-1, MAP_BLOCK_SIZE+1)
if r:
for i in range(1, len(r)):
- if r[i][0] > ip: return r[i-1][1]
- return r[-1][1]
+ if ip > r[i][0] and ip < r[i][1]: return r[i][2]
+ return r[-1][2]
def extract_ip(r):
if '_raw' in r:
@@ -128,6 +128,6 @@
if resvoled and resvoled[0] != 'RD':
for i, f in enumerate(ATTRIBUTES):
r["%s_%s" % (ip_field, f)] = resvoled[i]
- r["_lat"] = resvoled[6]
- r["_lng"] = resvoled[7]
+ r["_lat"] = resvoled[4]
+ r["_lng"] = resvoled[5]
writer.writerow(r)
... View more