这是indexloc提供的服务,不要输入任何密码
Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions freegeoip.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

from urllib import urlopen
from csv import reader
import json
import sys
import re

Expand All @@ -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):

Expand Down Expand Up @@ -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]
Expand Down