[发明专利]一种基于二分查找法实现IP范围定位的方法及系统在审
申请号: | 201710058866.1 | 申请日: | 2017-01-23 |
公开(公告)号: | CN106940708A | 公开(公告)日: | 2017-07-11 |
发明(设计)人: | 郝宇亮 | 申请(专利权)人: | 北京思特奇信息技术股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京轻创知识产权代理有限公司11212 | 代理人: | 杨立 |
地址: | 100086 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 二分 查找 实现 ip 范围 定位 方法 系统 | ||
技术领域
本发明涉及IP查询领域,具体涉及一种基于二分查找法实现IP范围定位的方法及系统。
背景技术
随着业务不断拓展,需要从某厂家提供的一个IP库里判断来访者IP是否在此IP库中,如果IP在IP库里,输出对应的IP段信息。IP库是一个文本文件,文件大小为29M,内容38万多行,接近39万行。将39万的数据存储在传统数据库中,如果访问量太大,会对数据库造成很大压力甚至导致数据库崩溃。
发明内容
本发明提供了一种基于二分查找法实现IP范围定位的方法及系统,能够提高IP的查询定位效率。
本发明解决上述技术问题的技术方案如下:一种基于二分查找法实现IP范围定位的方法,包括:
S1,根据待查找IP,利用二分查找法在数据库中顺序存储的起始IP集合中找到比待查找IP小且最大的起始IP;
S2,根据查找到的起始IP,从所述数据库的IP段信息集合中找到对应的IP段信息,并找到该IP段信息中对应的终止IP;
S3,判断所述终止IP是否大于待查找IP,若是,则输出所述IP段信息,若否,则输出所述待查找IP不在数据库中的提示信息。
本发明的有益效果为:采用二分查找法从海量IP库中定位需要查找的IP,相比传统的查找方式,加快了查找的效率,减轻对存储IP的数据库的内存压力。
在上述技术方案的基础上,本发明还可以作如下改进。
进一步的,步骤S1之前还包括:
S01,将所有的起始IP顺序写入Redis数据库有序集合中;
S02,以起始IP为主键,将与每一个起始IP对应的IP段信息写入Redis数据库的Hash结构中;
所述步骤S1具体包括:
根据待查找IP,利用二分查找法从Redis数据库有序集合中查找到比待查找IP小且最大的起始IP;
所述步骤S2具体包括:
根据查找到的起始IP,从Redis数据库的Hash结构中找到对应的IP段信息,并找到该IP段信息中对应的终止IP。
所述进一步的有益效果为:将所有的起始IP和对应的IP段信息存储在Redis数据库中,Redis数据库属于NoSQL数据库,相比传统的关系型数据库,存储容量大,同时将起始IP和对应的IP段信息分开存储,避免存储在一起由于访问量大造成数据库崩溃。
进一步的,所述步骤S01具体包括:
将所有的起始IP转换为long型,并从前到后升序写入Redis数据库有序集合中;
所述步骤S02具体包括:
以long型的起始IP为主键,将与每一个起始IP对应的IP段信息写入Redis数据库的Hash结构中;
所述步骤S1具体包括:
将待查找IP转换为long型,利用二分查找法从Redis数据库有序集合中查找到比待查找IP小且最大的起始IP;
所述步骤S2具体包括:
根据查找到的long型的起始IP,从Redis数据库的Hash结构中找到对应的IP段信息,并找到该IP段信息中对应的终止IP,且将终止IP转换为long型。
进一步的,所述步骤S01将所有的起始IP转换为long型,并从前到后升序写入Redis数据库有序集合中具体包括:
将所有的起始IP转换为long型,写入数组,将数组升序排列,转换后的long值作为value,并将数组写入Redis数据库中。
进一步的,所述步骤S1具体包括:
S11,将待查找IP分别与Redis数据库有序集合中的中间起始IP以及中间起始IP的下一个起始IP进行比较;
S12;当待查找IP大于中间起始IP且小于中间起始IP的下一个起始IP时,该中间起始IP为最大的且比待查找IP小的起始IP;
S13,若待查找IP小于中间起始IP,则以该中间起始IP为界,将整个Redis数据库有序集合划分为前后两部分,将前半部分作为新的Redis数据库有序集合,返回步骤S11;
S14,若待查找IP大于中间起始IP的下一个起始IP,则以该中间起始IP的下一个起始IP为界,将整个Redis数据库有序集合划分为前后两部分,将后半部分作为新的Redis数据库有序集合,返回步骤S11。
所述进一步的有益效果为:根据待查找IP,采用二分查找法从整个Redis有序集合中逐渐缩小范围,能够加快查询定位的速度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京思特奇信息技术股份有限公司,未经北京思特奇信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710058866.1/2.html,转载请声明来源钻瓜专利网。