[发明专利]基于红黑树的IP地址所属地查询方法及系统有效

专利信息
申请号: 201611186707.1 申请日: 2016-12-20
公开(公告)号: CN106777163B 公开(公告)日: 2020-05-26
发明(设计)人: 姜纪光;郁伟;邢钦华;刘雪艳 申请(专利权)人: 携程旅游网络技术(上海)有限公司
主分类号: G06F16/22 分类号: G06F16/22;G06F16/245
代理公司: 上海弼兴律师事务所 31283 代理人: 薛琦;罗朗
地址: 200335*** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 红黑树 ip 地址 属地 查询 方法 系统
【说明书】:

发明公开了一种基于红黑树的IP地址所属地查询方法及系统,所述基于红黑树的IP地址所属地查询方法包括以下步骤:S1、将IP地址信息存储至数据库中;S2、读取数据库中的IP地址信息到计算机内存中;S3、对IP地址信息进行索引形式的转换;S4、将索引形式的IP地址信息保存至红黑树中;S5、从所述红黑树中查询出与待查询的IP地址所对应的结点;S6、根据所述结点获取所述待查询的IP地址的所属地信息。本发明基于计算机内存,红黑树算法,关系型数据库,具有良好的可扩展、实时、高并发性能。

技术领域

本发明涉及一种基于红黑树的IP地址所属地查询方法及系统。

背景技术

在日常的工作中经常需要查询某个IP地址的所属地信息,传统的实现IP所属地信息查询的方法是把IP地址信息存储到关系型数据库(如MySQL)中,对于并发量比较少,实时性要求不高的情况下是可用的,但是一旦并发量增大时,会对关系型数据库产生很大的压力,并且访问速度会明显减慢,因此对于高并发、实时性要求高的场合这种查询方法就显得捉襟见肘了。

发明内容

本发明要解决的技术问题是为了克服现有技术中传统的实现IP所属地信息查询的方法在并发量增大时会对关系型数据库产生很大的压力,导致访问速度减慢的缺陷,提供一种基于红黑树的IP地址所属地查询方法及系统。

本发明是通过下述技术方案来解决上述技术问题的:

本发明提供了一种基于红黑树的IP地址所属地查询方法,其特点在于,包括以下步骤:

S1、将IP地址信息存储至数据库中;

S2、读取数据库中的IP地址信息到计算机内存中;

S3、对IP地址信息进行索引形式的转换;

S4、将索引形式的IP地址信息保存至红黑树中;

S5、从所述红黑树中查询出与待查询的IP地址所对应的结点;

S6、根据所述结点获取所述待查询的IP地址的所属地信息。

较佳地,步骤S2中包括:将数据库中的IP地址信息以JSON格式(一种轻量级的数据交换格式)的字符串数据读取到计算机内存中;

所述字符串数据包括国家字段、地区字段、城市字段以及城市连续IP段的起始IP和终止IP。

较佳地,步骤S3中包括:

S31、将IP地址信息封装成Area类数据的集合;

其中,Area类数据包括type字段和name字段,所述name字段用于表征国家、地区或城市的名称,所述type字段用于表征国家、地区及城市之间的组合;

S32、将所述Area类数据转换为第一数据;

其中,所述第一数据包括所述type字段和name字段以及第一index字段,所述第一index字段为所述Area类数据的索引;

S33、根据IP地址信息及所述第一数据生成第二数据;

其中,所述第二数据包括国家索引字段、地区索引字段、城市索引字段、起始IP字段以及终止IP字段;

S34、对国家索引字段、地区索引字段以及城市索引字段相同的第二数据进行合并,生成第三数据;

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于携程旅游网络技术(上海)有限公司,未经携程旅游网络技术(上海)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201611186707.1/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top