利用淘宝IP库分析web日志来源分布

web访问日志中含有来访IP,通过IP查看归属地,最后统计访问的区域分布,可细化到省、市

淘宝接口地址:http://ip.taobao.com/service/getIpInfo.php?ip=14.215.177.38,后面的IP按需修改

例如要查看14.215.177.38这个地址的相关信息,返回的信息如下:

{"code":0,"data":

{"country":"\u4e2d\u56fd",

"country_id":"CN",

"area":"\u534e\u5357",

"area_id":"800000",

"region":"\u5e7f\u4e1c\u7701",

"region_id":"440000",

"city":"\u5e7f\u5dde\u5e02",

"city_id":"440100",

"county":"",

"county_id":"-1",

"isp":"\u7535\u4fe1",

"isp_id":"100017",

"ip":"14.215.177.38"}

}

返回内容以字典形式保存,code表示查询状态(0为成功,1为失败),具体的信息有:所属国家、区域、省份、市、所属运营商。由于用unicode编码,中文保存成\u4e2d等形式,使用unicode转中文工具即可查看其中的内容。

要求,分析访问IP的所属省份(国外IP划分在一起),分析各个省份分布比例。日志中的IP先处理保存成次数+IP的格式:

代码如下:

#!/usr/bin/env python
#coding:utf-8
from __future__ import division
import urllib2
bs_url = "
 
 # 定义一个全局字典,用来存放最终的统计数据,保存格式{‘省份‘:{‘IP‘:次数,...},...}
region_dic = { }
 
 # 用于获取IP信息的函数,并计入以上的字典
def get_data(IP,WIGHT=1):
    city = ""
    area = ""
    country = ""
    region = ""
    isp = ""
    request = urllib2.Request(bs_url+IP)
    reponse = urllib2.urlopen(request)
    #print result
    result = eval(reponse.read())
    #print result
    
    code = result[‘code‘]
    country_id = result[‘data‘][‘country_id‘]
    #print country_id
    if code == 0:
        if country_id == ‘CN‘:
            city = result[‘data‘][‘city‘].decode(‘unicode-escape‘)
            area = result[‘data‘][‘area‘].decode(‘unicode-escape‘)
            country = result[‘data‘][‘country‘].decode(‘unicode-escape‘)
            region = result[‘data‘][‘region‘].decode(‘unicode-escape‘)
            isp = result[‘data‘][‘isp‘].decode(‘unicode-escape‘)
        else:
            region = u"国外"
        #print region
        if region not in region_dic.keys():
            region_dic[‘%s‘%region] = { } 
        region_dic[‘%s‘%region][‘%s‘%IP] = int(WIGHT)
    else:
        print "request error"
    #print "IP:%s\nCity:%s\nArea:%s\nCountry:%s\nRegion:%s\nISP:%s"%(IP,city,area,country,region,isp)
    
if __name__ == ‘__main__‘:
    count = -1
    ip_list = []
    fo = open(‘ips.txt‘,‘r‘)
    # 要分析的IP保存在文件中
    for line in fo.xreadlines():
        wight,ip = line.strip().split()
        get_data(ip,wight)
        count += int(wight)
    fo.close()
    
    print u‘合计:‘
    for regions,stats in region_dic.items():
        times = 0
        for time in stats.values():
            times += time
        print "%s:%.2f %%"%(regions.encode(‘utf-8‘),int(times)/count)

运行结果:

注:其他可用的IP库接口:

新浪接口 http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=14.215.177.38

时间: 2024-10-03 21:54:35

利用淘宝IP库分析web日志来源分布的相关文章

php利用淘宝IP库获取用户ip地理位置

利用淘宝IP库获取用户ip地理位置 我们查ip的时候都是利用ip138查询的,不过那个有时候是不准确的,还不如自己引用淘宝的ip库来查询,这样准确度还高一些.不多说了,介绍一下: 淘宝IP地址库 淘宝公布了他们的IP库http://ip.taobao.com/,还有REST API接口,不过每个用户的访问频率需小于10qps,访问方    式:http://ip.taobao.com/service/getIpInfo.php?ip=[ip地址字串],返回内容以json格式的.具有IP查询,IP

python 利用淘宝IP库 查询IP归属地

#coding:utf-8 from django.test import TestCase import json import urllib ip = "114.114.114.114" url = "http://ip.taobao.com/service/getIpInfo.php?ip="+ ip #返回数据 jsondata = json.loads(urllib.urlopen(url).read()) print jsondata #省份 regio

python从淘宝ip库中获取公网ip的信息

看到一个题目:  从ip.taobao.com中获取公网ip的信息 分析: 1.生成公网IP地址: 2.根据ip.taobao.com返回的代码,用json解析 下面是淘宝的接口说明 ''' 接口说明 1. 请求接口(GET): http://ip.taobao.com/service/getIpInfo.php?ip=[ip地址字串] 2. 响应信息: (json格式的)国家 .省(自治区或直辖市).市(县).运营商 3. 返回数据格式: {"code":0,"data&q

淘宝IP地址库设计

当初选择做这么一个项目,不是为了拷贝一份库自己做服务,也不是为了其他目的,只是单纯的熟悉关于http和mysql方面的知识. 下面言归正传. 1.淘宝IP地址库简介 此地址库可以根据用户提供的IP地址,快速查询出该IP地址所在的地理信息和地理相关的信息,包括国家.省.市和运营商. 用户也可以主动提交信息来纠错. 主要优势表现为: (1)地域 覆盖度:94.54% 精确到市级 准确度:96.5% 精确到市级 (2)运营商 覆盖度:93.8% 准确度:暂无统计数据 (3)查询速度 10qps 注:阿

Delphi使用JSON解析调用淘宝IP地址库REST API 示例

淘宝IP地址库:http://ip.taobao.com,里面有REST API 说明. Delphi XE 调试通过,关键代码如下: [delphi] view plaincopy var IdHTTP: TIdHTTP; RequestURL: string; ResponseStream: TStringStream; JO, JData: TJSONObject; begin IdHTTP := TIdHTTP.Create(nil); IdHTTP.ReadTimeout := 0;

《转》冯森林:手机淘宝中的那些Web技术(2014年)

Native APP与Web APP的技术融合已经逐渐成为一种趋势,使用标准的Web技术来开发应用中的某些功能,不仅可以降低开发成本,同时还可以方便的进行功能迭代更新.但是如何保证Web APP的流畅性也一直是业内讨论的热点.InfoQ此次专访了手机淘宝客户端高级技术专家冯森林来谈谈手机淘宝在Web技术方面的一些实践经验,另外作为ArchSummit深圳2014大会<移动互联网,一浪高过一浪>专题的讲师,冯森林将会分享 手机淘宝的客户端架构探索之路 . InfoQ:淘宝手机客户端是否使用了HT

冯森林:手机淘宝中的那些Web技术

Native APP与Web APP的技术融合已经逐渐成为一种趋势,使用标准的Web技术来开发应用中的某些功能,不仅可以降低开发成本,同时还可以方便的进行功能迭代更新.但是如何保证Web APP的流畅性也一直是业内讨论的热点.InfoQ此次专访了手机淘宝客户端高级技术专家冯森林来谈谈手机淘宝在Web技术方面的一些实践经验,另外作为ArchSummit深圳2014大会<移动互联网,一浪高过一浪>专题的讲师,冯森林将会分享手机淘宝的客户端架构探索之路. InfoQ:淘宝手机客户端是否使用了HTML

手机淘宝中的那些Web技术-使用了类似PhoneGap的实现

Native APP与Web APP的技术融合已经逐渐成为一种趋势,使用标准的Web技术来开发应用中的某些功能,不仅可以降低开发成本,同时还可以方便的进行功能迭代更新.但是如何保证Web APP的流畅性也一直是业内讨论的热点.InfoQ此次专访了手机淘宝客户端高级技术专家冯森林来谈谈手机淘宝在Web技术方面的一些实践经验,另外作为ArchSummit深圳2014大会<移动互联网,一浪高过一浪>专题的讲师,冯森林将会分享手机淘宝的客户端架构探索之路. 1.淘宝手机客户端是否使用了HTML5技术?

教你利用淘宝指数详尽掌握并指导店铺运营

近期荣一电商对运营团队进行了培训,主要是讲淘宝指数对淘宝店铺运营的重要性,下面是主要的内容. 要想做好店铺运营,必得做好数据工作!不但要会看,最重要是会分析,找出规律和找到方法.对于数据分析,很多人都知道利用数据魔方和生E经.可是这两样工具不但收费,还规定店铺要到达到一定的级别才能使用,这对于小卖家来说,无疑是只能看不能接触.这时,淘宝指数就很实用了.因为淘宝指数可以让小卖家在没有数据魔方和生E经的情况下利用淘宝指数来了解淘宝搜索热点,查询成交走势,定位消费人群以及研究细分市场.如果淘宝指数运用