python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码
淘宝IP地址库
目前提供的服务包括:1. 根据用户提供的IP地址,快速查询出该IP地址所在的地理信息和地理相关的信息,包括国家、省、市和运营商。2. 用户可以根据自己所在的位置和使用的IP地址更新我们的服务内容。我们的优势:1. 提供国家、省、市、县、运营商全方位信息,信息维度广,格式规范。2. 提供完善的统计分析报表,省准确度超过99.8%,市准确度超过96.8%,数据质量有保障。=======================================1 #!/usr/local/bin/python 2 #coding: utf-8 3 __author__ = 'zdz8207' 4 import json 5 import urllib 6 import sys 7 8 def get_data(ip): 9 url = "http://ip.taobao.com/service/getIpInfo.php?ip="+ ip10 jsondata = json.loads(urllib.urlopen(url).read())11 #{u'code': 0, u'data': {u'ip': u'119.124.101.221', u'city':12 #其中code的值的含义为,0:成功,1:失败。{u'code': 1, u'data': u'invaild ip.'}13 #print(jsondata)14 if jsondata['code'] == 1:15 jsondata['data'] = { 'region':'','city':'','isp':''}16 return (jsondata['data']['region'], jsondata['data']['city'], jsondata['data']['isp'])17 18 if __name__ == "__main__":19 #211.162.62.161 61.135.157.156 220.198.192.0 119.124.101.22120 result = get_data("211.162.62.161")21 print(result[0]+result[1]+result[2])
======================================
python中数字和字符串连接的方法:print str(x) + " is a string"======================================Python获取IP归属地(修改版) - 开源中国社区淘宝IP库API地址:http://ip.taobao.com/service/getIpInfo.php?ip=xxx
用python的tkinter模块写了个查询IP地址的小程序 - 推酷
./queryip.py 61.135.157.156country area region city county isp 中国 华北 北京市 北京市 NULL 联通======================================
python通过淘宝IP地址库获取IP位置淘宝IP地址库提供了两大服务:1. 根据用户提供的IP地址,快速查询出该IP地址所在的地理信息和地理相关的信息,包括国家、省、市和运营商。2. 用户可以根据自己所在的位置和使用的IP地址更新我们的服务内容。优势:1. 提供国家、省、市、县、运营商全方位信息,信息维度广,格式规范。2. 提供完善的统计分析报表,省准确度超过99.8%,市准确度超过96.8%,数据质量有保障。这个服务也是限制每个用户的访问频率需小于10qps整个流程分两步:一,构造网址并读取网页数据;二,json解析网页数据。代码如下:
import urllib, urllib2import jsonimport sysimport reip = '61.135.157.156'#raw_input(r'IP : ')ip = str.strip(ip)ptn = re.compile(r'(([12][0-9][0-9]|[1-9][0-9]|[1-9])\.){3,3}([12][0-9][0-9]|[1-9][0-9]|[1-9])')rel = ptn.match(ip)if rel:passelse:print "IP not valid"sys.exit()try:urlfp = urllib.urlopen('http://ip.taobao.com/service/getIpInfo.php?ip='+ ip)except Exception, e:print "Error ", esys.exit()ipdata = urlfp.read()urlfp.close()allinfo = json.loads(ipdata)for oneinfo in allinfo:if "code" == oneinfo:if 0 == allinfo[oneinfo]:print "ip : " + allinfo["data"]["ip"]print "city : " + allinfo["data"]["country"],print allinfo["data"]["region"],print allinfo["data"]["city"],print "(" + allinfo["data"]["isp"] + ")" else:print "parse error"sys.exit()