python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码

时间:2022-07-12 17:23:14

python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码

淘宝IP地址库 http://ip.taobao.com/
目前提供的服务包括:
1. 根据用户提供的IP地址,快速查询出该IP地址所在的地理信息和地理相关的信息,包括国家、省、市和运营商。
2. 用户可以根据自己所在的位置和使用的IP地址更新我们的服务内容。
我们的优势:
1. 提供国家、省、市、县、运营商全方位信息,信息维度广,格式规范。
2. 提供完善的统计分析报表,省准确度超过99.8%,市准确度超过96.8%,数据质量有保障。
=======================================

 #!/usr/local/bin/python
#coding: utf-8
__author__ = 'zdz8207'
import json
import urllib
import sys def get_data(ip):
url = "http://ip.taobao.com/service/getIpInfo.php?ip="+ ip
jsondata = json.loads(urllib.urlopen(url).read())
#{u'code': 0, u'data': {u'ip': u'119.124.101.221', u'city':
#其中code的值的含义为,0:成功,1:失败。{u'code': 1, u'data': u'invaild ip.'}
#print(jsondata)
if jsondata['code'] == 1:
jsondata['data'] = {'region':'','city':'','isp':''}
return (jsondata['data']['region'], jsondata['data']['city'], jsondata['data']['isp']) if __name__ == "__main__":
#211.162.62.161 61.135.157.156 220.198.192.0 119.124.101.221
result = get_data("211.162.62.161")
print(result[0]+result[1]+result[2])

======================================
python中数字和字符串连接的方法:print str(x) + " is a string"
======================================
Python获取IP归属地(修改版) - 开源中国社区
http://www.oschina.net/code/snippet_995588_18859

淘宝IP库API地址:http://ip.taobao.com/service/getIpInfo.php?ip=xxx

用python的tkinter模块写了个查询IP地址的小程序 - 推酷
http://www.tuicool.com/articles/nQjMNb7
./queryip.py 61.135.157.156
country 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, urllib2
import json
import sys
import re ip = '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:
pass
else:
print "IP not valid"
sys.exit()
try:
urlfp = urllib.urlopen('http://ip.taobao.com/service/getIpInfo.php?ip='+ ip)
except Exception, e:
print "Error ", e
sys.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()