当初选择做这么一个项目,不是为了拷贝一份库自己做服务,也不是为了其他目的,只是单纯的熟悉关于http和mysql方面的知识。 下面言归正传。 1、淘宝IP地址库简介 此地址库可以根据用户提供的IP地址,快速查询出该IP地址所在的地理信息和地理相关的信息,包括
当初选择做这么一个项目,不是为了拷贝一份库自己做服务,也不是为了其他目的,只是单纯的熟悉关于http和mysql方面的知识。
下面言归正传。
1、淘宝IP地址库简介
此地址库可以根据用户提供的IP地址,快速查询出该IP地址所在的地理信息和地理相关的信息,包括国家、省、市和运营商。
用户也可以主动提交信息来纠错。
主要优势表现为:
(1)地域
覆盖度:94.54% 精确到市级
准确度:96.5% 精确到市级
(2)运营商
覆盖度:93.8%
准确度:暂无统计数据
(3)查询速度
10qps
注:阿里同机房内网,实测速度为4qps左右。
(4)接口
符合REST规范,方便扩展;
使用JSON作为数据格式,方便使用;
2、基础数据
下面介绍一下,需要使用到的一些基础数据项,以及来源。
首先,我们来分析一下淘宝IP地址库的返回数据,
{
"code" : 0, // 请求成功/失败
"data" : {
"country" : "\u4e2d\u56fd", // 国家
"country_id" : "CN", // 国家代码
"area" : "\u534e\u5317", // 地区
"area_id" : "100000", // 地区代码
"region" : "\u5317\u4eac\u5e02", // 省(自治区、直辖市、特别行政区)
"region_id" : "110000", // 省代码
"city" : "\u5317\u4eac\u5e02", // 市(地区、自治州、盟及国家直辖市所属市辖区和县)
"city_id" : "110000", // 市代码
"county" : "", // 县(市辖区、县级市、旗)
"county_id" : "-1", // 县代码
"isp" : "\u4e2d\u56fd\u79d1\u6280\u7f51", // 运营商
"isp_id" : "1000114", // 运营商代码
"ip" : "210.75.225.254" // ipv4/ipv6
}
}
其中:
国家与国家代码,由联合国统计局统一制定。详见:http://zh.wikipedia.org/wiki/ISO_3166-1
地区、省、市、县以及相应的代码,由中华人民共和国国家统计局统一制定,详见:http://www.stats.gov.cn/tjsj/tjbz/xzqhdm/201401/t20140116_501070.html
运营商与运营商代码,由国际电联电信标准化部门统一制定,不过已经很久没有维护,不可用。到目前为止,本人也没有找到一份完整的编码表,希望知晓者告知。暂且就以淘宝IP地址库中编码为准。
国家IP地址段,由互联网IP地址分配中心统一管理,在此附上中文版的地址段信息,详见程默的博客,在此表示感谢:http://ipblock.chacuo.net/
3、数据库设计
(1)数据项及命名
国家 country
地区 region
省(自治区、直辖市、特别行政区) province
市(地区、自治州、盟及国家直辖市所属市辖区和县) city
县(市辖区、县级市、旗) county
镇(乡、城镇) town
村(村庄) village
运营商 isp
IP ip
(2)IP表
国家代码 2个字节 CHAR(2)
县代码 6位整形 UINT(20)
村代码 12位整形 UINT(40)
运营商代码 7位整形 UINT(24)
IP地址 4个字节 UINT(32)
(3)国家表
二位字母 2个字节 CHAR(2)
三位字母 3个字节 CHAR(3)
三位数字 3位整形 UINT(10)
ISO英文用名 48个字节 CHAR(48)
中文用名 48个字节 CHAR(48)
(4)地区表
代码 1位整形 UINT(4)
名称 4个字节 CHAR(4)
(5)县(市辖区、县级市、旗)表
代码 6位整形 UINT(20)
名称 48个字节 CHAR(48)
(6)村(村庄)表
代码 12位整形 UINT(40)
名称 48个字节 CHAR(48)
(7)运营商表
代码 7位整形 UINT(24)
名称 48个字节 CHAR(48)
4、数据采集
IP运营商信息来源于各个运营商,IP所属地域信息来源于CNNIC,不过这些信息不太容易拿到完整的。
所以,此处就以淘宝IP地址库为来源。
5、实现方案
使用 nodejs + python 实现,nodejs主要实现网络交互集中的部分,python主要实现网页抓取。数据库使用常见的 mysql。
(1)国家代码抓取
使用 python 实现从
http://zh.wikipedia.org/wiki/ISO_3166-1 地址抓取代码信息,并保存文本country.txt。当然,也可以直接手动拷贝粘贴到文本中。
使用 nodejs 按行读取上一步抓取到的文本,做处理,使用 node-mysql 写入数据库。
(2)县代码抓取
使用 python 实现从
http://www.stats.gov.cn/tjsj/tjbz/xzqhdm/201401/t20140116_501070.html 地址抓取代码信息,并保存文本cncounty.txt。当然,也可以直接手动拷贝粘贴到文本中。
使用 nodejs 按行读取上一步抓取到的文本,做处理,使用 node-mysql 写入数据库。
(3)国内IP段抓取
使用 python 实现从
http://ipblock.chacuo.net/ 地址抓取IP段信息,并保存文本cnip.txt。当然,也可以直接手动拷贝粘贴到文本中。
(4)IP地址信息查询
使用 nodejs 读取 cnip.txt 文本,每次解析10000个IP,使用 http 模块从淘宝IP地址库查询结果,并使用 node-mysql 写入数据库。
由于在 nodejs 中 http 处理和 mysql 处理都是异步操作,所以,增加一个缓冲区,保存http请求结果。笔者使用了经典的生产者消费者模型来处理这个问题。
6、结果
为了保证请求的稳定,使用阿里云服务器运行此系统。
实际运行时,每秒可以稳定的请求到5个IP信息,中国目前(截止2014年1月)拥有3.3亿IP,完成全部请求大约需要2.98天。
完成全部存储,数据库大小为22.3GB。
转载请注明来自隐居士(石硕)的CSDN博客:blog.csdn.net/shishuo365
如有疑问请发邮件shishuo365#126.com(将#更换为@)

淘宝ID就是淘宝的账户名(账号名、会员名),是指成功注册淘宝时填写的会员或用户名;淘宝ID还可以称为淘宝会员名字、阿里旺旺名、淘宝账号登录名等。在跟卖家沟通的时候会显示淘宝会员名,就是淘宝id;在购物时能更方便查找到聊天记录,订单信息之类的,方便办理退货换货的售后服务。

淘宝封号能解封。其解封方法如下:1、申诉解封,通过淘宝的申诉渠道提交申诉请求。在申诉中,用户需要提供相关证据和解释,说明自己的行为符合淘宝的规定,并承诺遵守规定;2、联系客服,客服人员会根据实际情况进行审核和处理,并给予相应的建议和指导;3、整改行为,在解封申诉或联系客服时,用户可以说明自己已经认识到错误,并给出具体的整改方案和承诺。

淘宝七天无理由退货条件是商品必须是支持七天无理由退货、商品必须保持原样、商品必须是正品、消费者需要承担退运费和退款方式。详细介绍:1、商品必须是支持七天无理由退货,购买前,消费者需要仔细阅读商品详情页面上的退货政策说明,确认商品是否支持七天无理由退货;2、商品必须保持原样,商品必须保持原包装完好无损,并且没有使用过;3、商品必须是正品等等。

一个支付宝不可以绑定两个淘宝号。淘宝和支付宝是一对一的关系,支付宝账户和淘宝账户只能进行一对一的绑定,不能绑定多个,但是淘宝可以换绑支付宝;淘宝账户绑定了认证过的支付宝账户,则意味着其淘宝ID通过了支付宝认证。换绑方法:1、打开淘宝app,在“我的”页面点击右上角的“设置”图标;2、在设置页面点击“账号与安全”;3、选择“支付宝账号”;4、点击“更换支付宝绑定”即可。

淘宝消息发不出去有感叹号可能是由于网络连接、账号设置、消息内容或系统问题引起的。其解决方法如下:1、网络连接问题,检查网络连接、关闭防火墙或代理;2、账号设置问题,检查账号状态跟设置;3、消息内容问题,确保消息内容符合淘宝平台的规定或者检查消息内容,避免使用敏感词汇;4、系统问题,更新版本过一段时间再发。

淘宝消息发不出去有感叹号的原因:1、群发大量广告垃圾信息或者营销信息;2、没有进行实人认证,需要尽快进行实名认证;3、当天对陌生人发送太多消息;4、发送内容涉及账号密码等信息;5、发送内容含有影响社会风气等。

区别:1、淘宝网是C2C网购平台,而京东是B2C平台。2、京东采用得是价值链整合模式,淘宝则采用的是开放平台模式。3、京东采用自买自卖的模式,赚取商品中间的差价,通过低收益来获取规模化的销量;淘宝则并不参与商品的实际销售和服务,商品的销售以及服务都是由淘宝卖家直接负责的。4、京东有自己的物流平台,采用的是分布式库存管理;淘宝依赖于第三方物流平台,采用的是集约式库存管理。

淘宝订单找不到了可能是因为订单被删除、订单未发货、订单已取消、订单已删除、系统故障和账户异常等原因造成的。详细介绍:1、订单被删除,点击已买到的宝贝,点击单回收站,找到相应的订单,点击还原订单即可;2、订单未发货,等待商家发货,或者联系商家咨询订单状态;3、订单已取消,尝试联系商家,看看商家是否愿意重新发货;4、订单已删除,联系商家,询问订单状态和原因;5、系统故障等等。


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

SublimeText3 English version
Recommended: Win version, supports code prompts!

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)
