From 9f313c67bde90d884c7f1858c296b489aa4e3135 Mon Sep 17 00:00:00 2001 From: Guille Date: Thu, 26 Jun 2014 12:34:39 -0600 Subject: [PATCH] use json instead of csv --- freegeoip.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/freegeoip.py b/freegeoip.py index 92704e0..3343727 100755 --- a/freegeoip.py +++ b/freegeoip.py @@ -16,6 +16,7 @@ from urllib import urlopen from csv import reader +import json import sys import re @@ -28,7 +29,7 @@ __status__ = "Development" FREE_GEOIP_CSV_URL = "http://freegeoip.net/csv/%s" - +FREE_GEOIP_JSON_URL = "http://freegeoip.net/json/%s" def valid_ip(ip): @@ -57,8 +58,17 @@ def __get_geodata_csv(ip): "longitude":csv_data[9] } +def __get_geodata_json(ip): + if not valid_ip(ip): + raise Exception('Invalid IP format', 'You must enter a valid ip format: X.X.X.X') + + URL = FREE_GEOIP_JSON_URL % ip + #response_json = json.loads(urlopen(URL)) + response_json = urlopen(URL); + return json.loads(response_json.read()) + def get_geodata(ip): - return __get_geodata_csv(ip) + return __get_geodata_json(ip) if __name__ == "__main__": #code to execute if called from command-line intput_ip = sys.argv[1]