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

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

    淘宝IP地址库 http://ip.taobao.com/
    目前提供的服务包括:
    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="+ ip
    10 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.221
    20 result = get_data("211.162.62.161")
    21 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()
  • 相关阅读:
    hdu--2852--树状数组
    hdu--2848--未解决
    二进制与十进制之间蛮好的转换方式
    hdu--2846--字典树<怪我思维不够跳跃>
    hdu--2845--dp
    hdu--2844--多重背包
    hdu--1789--贪心||优先队列
    hdu--1978--记忆化深度搜索||递推
    hdu--2830--任意交换列的矩阵
    hdu--1506--矩阵求和<stack>
  • 原文地址:https://www.cnblogs.com/zdz8207/p/python_learn_note_23.html
Copyright © 2011-2022 走看看