CN106940708A - 一种基于二分查找法实现ip范围定位的方法及系统 - Google Patents

一种基于二分查找法实现ip范围定位的方法及系统 Download PDF

Info

Publication number
CN106940708A
CN106940708A CN201710058866.1A CN201710058866A CN106940708A CN 106940708 A CN106940708 A CN 106940708A CN 201710058866 A CN201710058866 A CN 201710058866A CN 106940708 A CN106940708 A CN 106940708A
Authority
CN
China
Prior art keywords
starting
found
redis
database
binary chop
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710058866.1A
Other languages
English (en)
Inventor
郝宇亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Si Tech Information Technology Co Ltd
Original Assignee
Beijing Si Tech Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Si Tech Information Technology Co Ltd filed Critical Beijing Si Tech Information Technology Co Ltd
Priority to CN201710058866.1A priority Critical patent/CN106940708A/zh
Publication of CN106940708A publication Critical patent/CN106940708A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种基于二分查找法实现IP范围定位的方法及系统,所述的方法包括:S1,根据待查找IP,利用二分查找法在数据库中顺序存储的起始IP集合中找到比待查找IP小且最大的起始IP;S2,根据查找到的起始IP,从所述数据库的IP段信息集合中找到对应的IP段信息,并找到该IP段信息中对应的终止IP;S3,判断所述终止IP是否大于待查找IP,若是,则输出所述IP段信息,若否,则输出所述待查找IP不在数据库中的提示信息。本发明采用二分查找法从海量IP库中定位需要查找的IP对应的IP段信息,相比传统的查找方式,加快了查找的效率,减轻了对存储IP的数据库的内存压力。

Description

一种基于二分查找法实现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有序集合中逐渐缩小范围,能够加快查询定位的速度。
为了解决本发明的技术问题,还可以提供一种基于二分查找法实现IP范围定位的系统,包括:
第一查找模块,用于根据待查找IP,利用二分查找法在数据库中顺序存储的起始IP集合中找到比待查找IP小且最大的起始IP;
第二查找模块,用于根据查找到的起始IP,从所述数据库的IP段信息集合中找到对应的IP段信息,并找到该IP段信息中对应的终止IP;
判断模块,用于判断所述终止IP是否大于待查找IP;
输出模块,用于若终止IP大于待查找IP,则输出所述IP段信息,若否,则输出所述待查找IP不在数据库中的提示信息。
进一步的,还包括:
数据写入模块,用于将所有的起始IP顺序写入Redis数据库有序集合中,以及以起始IP为主键,将与每一个起始IP对应的IP段信息写入Redis数据库的Hash结构中;
所述第一查找模块具体用于:
根据待查找IP,利用二分查找法从Redis数据库有序集合中查找到比待查找IP小且最大的起始IP;
所述第二查找模块,具体用于:
根据查找到的起始IP,从Redis数据库的Hash结构中找到对应的IP段信息,并找到该IP段信息中对应的终止IP。
进一步的,所述数据写入模块具体用于:
将所有的起始IP转换为long型,并从前到后升序写入Redis数据库有序集合中,以及以long型的起始IP为主键,将与每一个起始IP对应的IP段信息写入Redis数据库的Hash结构中;
所述第一查找模块具体用于:
将待查找IP转换为long型,利用二分查找法从Redis数据库有序集合中查找到比待查找IP小且最大的起始IP;
所述第二查找模块具体用于:
根据查找到的long型的起始IP,从Redis数据库的Hash结构中找到对应的IP段信息,并找到该IP段信息中对应的终止IP,且将终止IP转换为long型。
进一步的,所述数据写入模块用于将所有的起始IP转换为long型,并从前到后升序写入Redis数据库有序集合中具体包括:
将所有的起始IP转换为long型,写入数组,将数组升序排列,转换后的long值作为value,并将数组写入Redis数据库中。
进一步的,还包括比较模块,
比较模块,用于将待查找IP分别与Redis数据库有序集合中的中间起始IP以及中间起始IP的下一个起始IP进行比较,当待查找IP大于中间起始IP且小于中间起始IP的下一个起始IP时,该中间起始IP为比待查找IP小且最大的起始IP;
所述第一查找模块,具体用于若待查找IP小于中间起始IP,则以该中间起始IP为界,将整个Redis数据库有序集合划分为前后两部分,将前半部分作为新的Redis数据库有序集合,并执行比较模块;还用于若待查找IP大于中间起始IP,则以该中间起始IP为界,将整个Redis数据库有序集合划分为前后两部分,将后半部分作为新的Redis数据库有序集合,并执行模块。
附图说明
图1为本发明一个实施例中基于二分查找法实现IP范围定位的方法流程图;
图2为本发明另一个实施例中基于二分查找法实现IP范围定位的方法流程图;
图3为本发明一个实施例中二分查找法的流程图;
图4为本发明一个实施例中基于二分查找法实现IP范围定位的系统框图示意图;
图5为本发明另一实施例中基于二分查找法实现IP范围定位的系统框图示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
参见图1,为本发明实施例1的一种基于二分查找法实现IP范围定位的方法,包括:
S1,根据待查找IP,利用二分查找法在数据库中顺序存储的起始IP集合中找到比待查找IP小且最大的起始IP;
S2,根据查找到的起始IP,从所述数据库的IP段信息集合中找到对应的IP段信息,并找到该IP段信息中对应的终止IP;
S3,判断所述终止IP是否大于待查找IP,若是,则输出所述IP段信息,若否,则输出所述待查找IP不在数据库中的提示信息。
可以理解为,本实施例是希望根据待查找IP,查找到对应的IP段信息,二IP段信息具有起始IP和终止IP,在本实施例中,在同一个数据库中,该数据库的一个集合中存放所有的起始IP,另一个集合中存放IP段信息和终止IP。本实施例先根据待查找IP,利用二分查找法在顺序排列的起始IP集合中查找对应的起始IP,起始IP集合中最大的且比待查找IP小的起始IP为待查找IP所在的IP段的起始IP。找到与待查找IP对应的起始IP,根据查找到的起始IP,从IP段信息集合中找到对应的IP段信息,并找到该IP段信息中对应的终止IP。随后,将终止IP与待查找IP进行比较,当终止IP大于等于待查找IP时,表明待查找IP确实是属于该IP段中的,因此,可以输出该IP段信息;如果终止IP小于待查找IP,表明待查找IP不在整个数据库中,则输出查找错误信息或者待查找IP不在合法范围内的错误信息,表明该待查找IP不在IP数据库中。
本实施例采用二分查找法从海量IP库中定位需要查找的IP对应的IP段信息,相比传统的查找方式,加快了查找的效率,减轻了对存储IP的数据库的内存压力。
参见图2,为本发明实施例2的一种基于二分查找法实现IP范围定位的方法,包括:
S0’,将所有的起始IP顺序写入Redis数据库有序集合中,以起始IP为主键,将与每一个起始IP对应的IP段信息写入Redis数据库的Hash结构中;
S1’,根据待查找IP,利用二分查找法从Redis数据库有序集合中查找到且比待查找IP小且最大的起始IP;
S2’,根据查找到的起始IP,从Redis数据库的Hash结构中找到对应的IP段信息,并找到该IP段信息中对应的终止IP;
S3’,判断该终止IP是否大于待查找IP,若是,则输出所述IP段信息,若否,则输出所述待查找IP不在数据库中的提示信息。
上述实施例中将所有的起始IP按照升序方式写入Redis数据库有序集合中,并以起始IP为主键,将Redis数据库有序集合中的每一个起始IP对应的IP段信息写入Redis数据库的Hash结构中。本实施例将所有的起始IP和对应的IP段信息存储在Redis数据库中,Redis数据库属于NoSQL数据库,相比传统的关系型数据库,存储容量大,同时将起始IP和对应的IP段信息分开存储,避免存储在一起由于访问量大造成数据库崩溃。
在将所有的起始IP按照升序方式写入Redis数据库有序集合的过程中,为了便于将所有的起始IP进行升序排列,将所有的起始IP转换成long型数值升序写入Redis数据库有序集合中,并以long型的起始IP为主键,将与每一个起始IP对应的IP段信息写入Redis数据库的Hash结构中,其中,每一个IP段是包括起始IP和终止IP的,Hash结构中的终止IP也为long型。具体的,将所有的起始IP转换为long型,写入数组,将数组升序排列,转换后的long值作为value,并将数组写入Redis数据库中。
在具体的查找过程中,将待查找IP转换为long型,并利用二分查找法从Redis数据库有序集合中查找到比待查找IP小且最大的起始IP。具体实现的查找过程为,可参见图3,将待查找IP分别与Redis数据库有序集合中的中间起始IP以及中间起始IP的下一个起始IP进行比较;当待查找IP大于中间起始IP且小于中间起始IP的下一个起始IP时,该中间起始IP为比待查找IP小且最大的起始IP,即当待查找IP大于中间起始IP且小于中间起始IP的下一个起始IP时,可以初步确定待查找IP在该中间起始IP所在的IP段内,因此,该中间IP为需要查找的起始IP。若待查找IP小于中间起始IP,则以该中间起始IP为界,将整个Redis数据库有序集合划分为前后两部分,从前半部分继续按照二分查找法进行查找定位,查找方式与前述相同;同样的,若待查找IP大于中间起始IP的下一个起始IP,则以该中间起始IP的下一个起始IP为界,将整个Redis数据库有序集合划分为前后两部分,从后半部分查找继续按照二分查找法进行查找定位,查找方式与前述相同,整个过程直到查找到与待查找IP对应的起始IP或者整个起始IP库均遍历一遍还未找到对应的起始IP为止。
根据查找到的起始IP,从Redis数据库的Hash结构中找到对应的IP段信息,其中,IP段包括起始IP和终止IP,因此,可以找到该IP段信息对应的终止IP。将找到的终止IP与待查找IP进行比较,当终止IP大于等于待查找IP时,表明待查找IP确实是属于该IP段中的,因此,可以输出该IP段信息;如果终止IP小于待查找IP,表明待查找IP不在整个IP库中,则输出查找错误信息或者待查找IP不在合法范围内的错误信息。
参见图4,为本发明实施例3的一种基于二分查找法实现IP范围定位的系统,包括第一查找模块41、第二查找模块42、判断模块43和输出模块44。
其中,第一查找模块41用于根据待查找IP,利用二分查找法在数据库中顺序存储在的起始IP集合中找到比待查找IP小且最大的起始IP;
第二查找模块42,用于根据查找到的起始IP,从所述数据库的IP段信息集合中找到对应的IP段信息,并找到该IP段信息中对应的终止IP;
判断模块43,用于判断该终止IP是否大于待查找IP;
输出模块44,用于若终止IP大于待查找IP,则输出所述IP段信息,若否,则输出所述待查找IP不在所述数据库中的提示信息。
参见图5,为本发明实施例4的一种基于二分查找实现IP范围定位的系统,包括数据写入模块51、第一查找模块52、第二查找模块53、判断模块54和输出模块55。
数据写入模块51,用于将所有的起始IP顺序写入Redis数据库有序集合中,以及以起始IP为主键,将与每一个起始IP对应的IP段信息写入Redis数据库的Hash结构中;
所述第一查找模块52具体用于:
根据待查找IP,利用二分查找法从Redis数据库有序集合中查找到比待查找IP小且最大的起始IP;
所述第二查找模块53,具体用于:
根据查找到的起始IP,从Redis数据库的Hash结构中找到对应的IP段信息,并找到该IP段信息中对应的终止IP。
其中,所述数据写入模块51具体用于:
将所有的起始IP转换为long型,并从前到后升序写入Redis数据库有序集合中,以及以long型的起始IP为主键,将与每一个起始IP对应的IP段信息写入Redis数据库的Hash结构中;
所述第一查找模块52具体用于:
将待查找IP转换为long型,利用二分查找法从Redis数据库有序集合中查找到最大的且比待查找IP小的起始IP;
所述第二查找模块53具体用于:
根据查找到的long型的起始IP,从Redis数据库的Hash结构中找到对应的IP段信息,并找到该IP段信息中对应的终止IP,且将终止IP转换为long型。
所述数据写入模块51用于将所有的起始IP转换为long型,并从前到后升序写入Redis数据库有序集合中具体包括:
将所有的起始IP转换为long型,写入数组,将数组升序排列,转换后的long值作为value,并将数组写入Redis数据库中。
其中,还包括还包括比较模块56,比较模块56,用于将待查找IP分别与Redis数据库有序集合中的中间起始IP以及中间起始IP的下一个起始IP进行比较,当待查找IP大于中间起始IP且小于中间起始IP的下一个起始IP时,该中间起始IP为比待查找IP小且最大的起始IP;
所述第一查找模块52,具体用于若待查找IP小于中间起始IP,则以该中间起始IP为界,将整个Redis数据库有序集合划分为前后两部分,将前半部分作为新的Redis数据库有序集合,并执行比较模块;还用于若待查找IP大于中间起始IP,则以该中间起始IP为界,将整个Redis数据库有序集合划分为前后两部分,将后半部分作为新的Redis数据库有序集合,并执行模块。
本发明提供的一种基于二分查找法实现IP范围定位的方法及系统,将所有的起始IP和对应的IP段信息存储在Redis数据库中,Redis数据库属于NoSQL数据库,相比传统的关系型数据库,存储容量大,同时将起始IP和对应的IP段信息分开存储,避免存储在一起由于访问量大造成数据库崩溃;并在Redis数据库中采用二分查找法从海量IP库中定位需要查找的IP对应的IP段信息,相比传统的查找方式,加快了查找的效率,减轻了对存储IP的数据库的内存压力。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于二分查找法实现IP范围定位的方法,其特征在于,包括:
S1,根据待查找IP,利用二分查找法在数据库中顺序存储的起始IP集合中找到比待查找IP小且最大的起始IP;
S2,根据查找到的起始IP,从所述数据库的IP段信息集合中找到对应的IP段信息,并找到该IP段信息中对应的终止IP;
S3,判断所述终止IP是否大于待查找IP,若是,则输出所述IP段信息,若否,则输出所述待查找IP不在数据库中的提示信息。
2.如权利要求1所述的基于二分查找法实现IP范围定位的方法,其特征在于,步骤S1之前还包括:
S01,将所有的起始IP顺序写入Redis数据库有序集合中;
S02,以起始IP为主键,将与每一个起始IP对应的IP段信息写入Redis数据库的Hash结构中;
所述步骤S1具体包括:
根据待查找IP,利用二分查找法从Redis数据库有序集合中查找到比待查找IP小且最大的起始IP;
所述步骤S2具体包括:
根据查找到的起始IP,从Redis数据库的Hash结构中找到对应的IP段信息,并找到该IP段信息中对应的终止IP。
3.如权利要求2所述的基于二分查找法实现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型。
4.如权利要求3所述的基于二分查找法实现IP范围定位的方法,其特征在于,所述步骤S01中将所有的起始IP转换为long型,并从前到后升序写入Redis数据库有序集合中具体包括:
将所有的起始IP转换为long型,写入数组,将数组升序排列,转换后的long值作为value,并将数组写入Redis数据库中。
5.如权利要求3所述的基于二分查找法实现IP范围定位的方法,其特征在于,所述步骤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。
6.一种基于二分查找法实现IP范围定位的系统,其特征在于,包括:
第一查找模块,用于根据待查找IP,利用二分查找法在数据库中顺序存储的起始IP集合中找到比待查找IP小且最大的起始IP;
第二查找模块,用于根据查找到的起始IP,从所述数据库的IP段信息集合中找到对应的IP段信息,并找到该IP段信息中对应的终止IP;
判断模块,用于判断所述终止IP是否大于待查找IP;
输出模块,用于若终止IP大于待查找IP,则输出所述IP段信息,若否,则输出所述待查找IP不在数据库中的提示信息。
7.如权利要求6所述的基于二分查找法实现IP范围定位的系统,其特征在于,还包括:
数据写入模块,用于将所有的起始IP顺序写入Redis数据库有序集合中,以及以起始IP为主键,将与每一个起始IP对应的IP段信息写入Redis数据库的Hash结构中;
所述第一查找模块具体用于:
根据待查找IP,利用二分查找法从Redis数据库有序集合中查找到比待查找IP小且最大的起始IP;
所述第二查找模块,具体用于:
根据查找到的起始IP,从Redis数据库的Hash结构中找到对应的IP段信息,并找到该IP段信息中对应的终止IP。
8.如权利要求7所述的基于二分查找法实现IP范围定位的系统,其特征在于,所述数据写入模块具体用于:
将所有的起始IP转换为long型,并从前到后升序写入Redis数据库有序集合中,以及以long型的起始IP为主键,将与每一个起始IP对应的IP段信息写入Redis数据库的Hash结构中;
所述第一查找模块具体用于:
将待查找IP转换为long型,利用二分查找法从Redis数据库有序集合中查找到比待查找IP小且最大的起始IP;
所述第二查找模块具体用于:
根据查找到的long型的起始IP,从Redis数据库的Hash结构中找到对应的IP段信息,并找到该IP段信息中对应的终止IP,且将终止IP转换为long型。
9.如权利要求8所述的基于二分查找法实现IP范围定位的系统,其特征在于,所述数据写入模块用于将所有的起始IP转换为long型,并从前到后升序写入Redis数据库有序集合中具体包括:
将所有的起始IP转换为long型,写入数组,将数组升序排列,转换后的long值作为value,并将数组写入Redis数据库中。
10.如权利要求9所述的基于二分查找法实现IP范围定位的系统,其特征在于,还包括:
比较模块,用于将待查找IP分别与Redis数据库有序集合中的中间起始IP以及中间起始IP的下一个起始IP进行比较,当待查找IP大于中间起始IP且小于中间起始IP的下一个起始IP时,该中间起始IP为比待查找IP小且最大的起始IP;
第一查找模块,具体用于若待查找IP小于中间起始IP,则以该中间起始IP为界,将整个Redis数据库有序集合划分为前后两部分,将前半部分作为新的Redis数据库有序集合,并执行比较模块;还用于若待查找IP大于中间起始IP,则以该中间起始IP为界,将整个Redis数据库有序集合划分为前后两部分,将后半部分作为新的Redis数据库有序集合,并执行模块。
CN201710058866.1A 2017-01-23 2017-01-23 一种基于二分查找法实现ip范围定位的方法及系统 Pending CN106940708A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710058866.1A CN106940708A (zh) 2017-01-23 2017-01-23 一种基于二分查找法实现ip范围定位的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710058866.1A CN106940708A (zh) 2017-01-23 2017-01-23 一种基于二分查找法实现ip范围定位的方法及系统

Publications (1)

Publication Number Publication Date
CN106940708A true CN106940708A (zh) 2017-07-11

Family

ID=59469434

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710058866.1A Pending CN106940708A (zh) 2017-01-23 2017-01-23 一种基于二分查找法实现ip范围定位的方法及系统

Country Status (1)

Country Link
CN (1) CN106940708A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107395645A (zh) * 2017-09-05 2017-11-24 瑞科网信(北京)科技有限公司 用于防火墙的系统和方法以及存储有对应程序的介质
CN110134834A (zh) * 2019-05-15 2019-08-16 四川新网银行股份有限公司 一种使用动态avl森林高速缓存加速ip定位的方法
CN110769079A (zh) * 2019-10-30 2020-02-07 杭州迪普科技股份有限公司 一种检索ip对应地理位置的方法及装置
CN112398867A (zh) * 2020-11-23 2021-02-23 欧冶云商股份有限公司 黑白名单限制实现方法、平台、计算机设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050083937A1 (en) * 2003-10-15 2005-04-21 Hyesook Lim IP address lookup method using pipeline binary tree, hardware architecture, and recording medium
CN101043421A (zh) * 2006-03-21 2007-09-26 上海激动通信有限公司 一种基于内存的ip地址最长匹配快速查找的方法
CN102469134A (zh) * 2010-11-17 2012-05-23 广州欢网科技有限责任公司 一种ip地址检索方法及装置
CN103177000A (zh) * 2011-12-21 2013-06-26 卓望数码技术(深圳)有限公司 Ip地址或者手机号码的分组方法和归属地的查询方法
CN105635343A (zh) * 2016-02-02 2016-06-01 中国互联网络信息中心 应用于dns查询的ip地址列表存储和查询方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050083937A1 (en) * 2003-10-15 2005-04-21 Hyesook Lim IP address lookup method using pipeline binary tree, hardware architecture, and recording medium
CN101043421A (zh) * 2006-03-21 2007-09-26 上海激动通信有限公司 一种基于内存的ip地址最长匹配快速查找的方法
CN102469134A (zh) * 2010-11-17 2012-05-23 广州欢网科技有限责任公司 一种ip地址检索方法及装置
CN103177000A (zh) * 2011-12-21 2013-06-26 卓望数码技术(深圳)有限公司 Ip地址或者手机号码的分组方法和归属地的查询方法
CN105635343A (zh) * 2016-02-02 2016-06-01 中国互联网络信息中心 应用于dns查询的ip地址列表存储和查询方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107395645A (zh) * 2017-09-05 2017-11-24 瑞科网信(北京)科技有限公司 用于防火墙的系统和方法以及存储有对应程序的介质
CN110134834A (zh) * 2019-05-15 2019-08-16 四川新网银行股份有限公司 一种使用动态avl森林高速缓存加速ip定位的方法
CN110134834B (zh) * 2019-05-15 2023-06-09 四川新网银行股份有限公司 一种使用动态avl森林高速缓存加速ip定位的方法
CN110769079A (zh) * 2019-10-30 2020-02-07 杭州迪普科技股份有限公司 一种检索ip对应地理位置的方法及装置
CN112398867A (zh) * 2020-11-23 2021-02-23 欧冶云商股份有限公司 黑白名单限制实现方法、平台、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
CN106940708A (zh) 一种基于二分查找法实现ip范围定位的方法及系统
CN105117417B (zh) 一种读优化的内存数据库Trie树索引方法
US5602764A (en) Comparing prioritizing memory for string searching in a data compression system
CN109325032B (zh) 一种索引数据存储及检索方法、装置及存储介质
US6353910B1 (en) Method and apparatus for implementing error correction coding (ECC) in a dynamic random access memory utilizing vertical ECC storage
CN102708183B (zh) 数据压缩的方法和装置
CN103914483B (zh) 文件存储方法、装置及文件读取方法、装置
CN107357843B (zh) 基于数据流结构的海量网络数据查找方法
CN111966654A (zh) 一种基于Trie字典树的混合过滤器
CN111801665A (zh) 用于大数据应用的分层局部敏感哈希(lsh)分区索引
CN101751416A (zh) 一种对字符串排序和查找的方法
CN102867049A (zh) 一种基于单词查找树实现的汉语拼音快速分词方法
CN100476824C (zh) 存储元素的方法与系统及查找元素的方法与系统
CN105335481A (zh) 一种大规模字符串文本的后缀索引构造方法及装置
CN112434085B (zh) 基于Roaring Bitmap的用户数据统计方法
KR20170065374A (ko) 버킷 단위의 정렬을 기반으로 하는 해시 충돌 처리 방법
CN106909623A (zh) 一种支持高效海量数据分析和检索的数据装置及数据存储方法
CN105553483B (zh) 一种产生lz77的方法及装置
CN113495901A (zh) 一种面向可变长数据块的快速检索方法
CN105653950A (zh) 一种基于多模式的恶意代码匹配方法及装置
CN108595508B (zh) 一种基于后缀数组的自适应索引构建方法及系统
CN112527949B (zh) 数据存储与检索方法、装置、计算机设备及存储介质
CN116088771B (zh) 基于能源互联网的工单数据多层次存储方法及系统
CN113886391B (zh) 基于离散型的双指纹存储布谷鸟过滤器的数据处理方法
JP2001052024A (ja) 類似特徴量の検索方法及び装置及び類似特徴量の検索プログラムを格納した記憶媒体

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170711