清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
def fetch(ip):
url = 'http://ip.taobao.com/service/getIpInfo.php?ip=' + ip
result = []
try:
response = urllib.urlopen(url).read()
jsondata = json.loads(response)
if jsondata[u'code'] == 0:
result.append(jsondata[u'data'][u'ip'].encode('utf-8'))
result.append(jsondata[u'data'][u'country'].encode('utf-8'))
result.append(jsondata[u'data'][u'country_id'].encode('utf-8'))
result.append(jsondata[u'data'][u'area'].encode('utf-8'))
result.append(jsondata[u'data'][u'area_id'].encode('utf-8'))
result.append(jsondata[u'data'][u'region'].encode('utf-8'))
result.append(jsondata[u'data'][u'region_id'].encode('utf-8'))
result.append(jsondata[u'data'][u'city'].encode('utf-8'))
result.append(jsondata[u'data'][u'city_id'].encode('utf-8'))
result.append(jsondata[u'data'][u'county'].encode('utf-8'))
result.append(jsondata[u'data'][u'county_id'].encode('utf-8'))
result.append(jsondata[u'data'][u'isp'].encode('utf-8'))
result.append(jsondata[u'data'][u'isp_id'].encode('utf-8'))
else:
return 0, result
except:
logging.exception("Url open failed:" + url)
return 0, result
return 1, result
def worker(ratelimit, jobs, results, progress):
global cancel
while not cancel:
try:
ratelimit.ratecontrol()
ip = jobs.get(timeout=2) # Wait 2 seconds
ok, result = fetch(ip)
if not ok:
logging.error("Fetch information failed, ip:{}".format(ip))
progress.put("") # Notify the progress even it failed
elif result is not None:
results.put(" ".join(result))
jobs.task_done() # Notify one item
except Queue.Empty:
pass
except:
logging.exception("Unknown Error!")