CN114285797B - Ip地址的处理方法、装置、存储介质 - Google Patents

Ip地址的处理方法、装置、存储介质 Download PDF

Info

Publication number
CN114285797B
CN114285797B CN202111652667.6A CN202111652667A CN114285797B CN 114285797 B CN114285797 B CN 114285797B CN 202111652667 A CN202111652667 A CN 202111652667A CN 114285797 B CN114285797 B CN 114285797B
Authority
CN
China
Prior art keywords
address
storage
stored
location
addresses
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.)
Active
Application number
CN202111652667.6A
Other languages
English (en)
Other versions
CN114285797A (zh
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 Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec Software Co Ltd
Original Assignee
Beijing Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec Software 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 Topsec Technology Co Ltd, Beijing Topsec Network Security Technology Co Ltd, Beijing Topsec Software Co Ltd filed Critical Beijing Topsec Technology Co Ltd
Priority to CN202111652667.6A priority Critical patent/CN114285797B/zh
Publication of CN114285797A publication Critical patent/CN114285797A/zh
Application granted granted Critical
Publication of CN114285797B publication Critical patent/CN114285797B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本申请提供一种IP地址的处理方法、装置、存储介质。IP地址的处理方法,包括:获取多个待存储IP地址和多个待存储IP地址对应的详细信息;针对任意一个待存储IP地址,根据多个待存储IP地址的数量和该待存储IP地址对应的详细信息的数据量确定第一存储位置,并将该待存储IP地址对应的详细信息存储到第一存储位置;确定第一位置信息;确定第二存储位置,并将第一位置信息和该待存储IP地址的后16位存储到第二存储位置;确定第二位置信息;根据该待存储IP地址的前16位确定第三存储位置,并将第二位置信息存储到第三存储位置。该方法用以实现IP地址简单且有效的存储,以及提高IP地址的易检索性。

Description

IP地址的处理方法、装置、存储介质
技术领域
本申请涉及网络通信技术领域,具体而言,涉及一种IP地址的处理方法、装置、存储介质。
背景技术
IP(Internet Protocol,网际互联协议)地址作为互联网分配的唯一逻辑地址,是网络设备和网络程序获取网络节点信息的重要凭证,所以对于网络设备和网络程序而言,其业务通常都会涉及到IP地址库的存储以及检索的过程。
目前常用的IPv4(Internet Protocol version 4,互联网通信协议第四版)地址库,通常以文本形式明文存储。网络设备和网络程序在使用这种IPv4地址库时,需要先将其解析成自己所支持的数据结构进行存储,以支持后续的IP检索过程。但是,该存储过程较为繁琐,且不易检索。
发明内容
本申请实施例的目的在于提供一种IP地址的处理方法、装置、存储介质,用以实现IP地址简单且有效的存储,以及提高IP地址的易检索性。
第一方面,本申请实施例提供一种IP地址的处理方法,包括:获取多个待存储IP地址和所述多个待存储IP地址分别对应的详细信息;所述多个待存储IP地址均为IPv4地址;将所述多个待存储IP地址对应的存储空间划分为第一存储部分、第二存储部分和第三存储部分;针对任意一个待存储IP地址,根据所述多个待存储IP地址的数量和该待存储IP地址对应的详细信息的数据量确定第一存储位置,并将该待存储IP地址对应的详细信息存储到所述第一存储位置;所述第一存储位置属于所述第一存储部分;确定第一位置信息;所述第一位置信息用于指示所述第一存储位置;确定第二存储位置,并将所述第一位置信息和该待存储IP地址的后16位存储到所述第二存储位置;所述第二存储位置属于所述第二存储部分;确定第二位置信息;所述第二位置信息用于指示所述第二存储位置;根据该待存储IP地址的前16位确定第三存储位置,并将所述第二位置信息存储到所述第三存储位置;所述第三存储位置属于所述第三存储部分。
在本申请实施例中,针对待存储IP地址,将其对应的存储空间划分为三个存储部分。通过第一存储部分,存储IP地址对应的详细信息;通过第二存储部分,存储用于指示详细信息的存储位置的位置信息和IP地址的前16位,实现第一存储部分的索引信息的存储;通过第三存储部分,存储用于指示详细信息的索引信息的存储位置的位置信息,实现第二存储部分的索引信息的存储。
上述的存储方式,无需基于所支持的数据结构对IP地址进行解析,只需将IP地址的详细信息存储到对应的存储位置,以及确定并存储相应的索引信息,降低了IP地址存储的繁琐性,实现IP地址的简单且有效的存储。并且,由于存储的IP地址具备索引信息,在检索时,可以基于这些索引信息实现快速检索,提高IP地址的易检索性。
作为一种可能的实现方式,所述第二存储部分基于待存储IP地址的后16位地址所占的字节数、第一位置信息所占的字节数和多个待存储IP地址的数量确定,所述第三存储部分在所述存储空间中占用固定存储空间。
在本申请实施例中,通过待存储IP地址的后16位地址所占的字节数、第一位置信息所占的字节数和多个待存储IP地址的数量,确定第二存储部分;通过固定存储空间作为第三存储部分,实现三个存储部分的有效划分。
作为一种可能的实现方式,所述第一位置信息用于指示所述第一存储位置与所述所需的存储空间的起始位置之间的偏移量,该偏移量表示为:256k+m*6+(n-1)*s,其中,m为多个待存储IP地址的数量,n代表该待存储IP地址为m个待存储IP地址中的第n个待存储IP地址,s代表该待存储IP地址对应的详细信息的数据量。
在本申请实施例中,通过多个待存储IP地址的数量、待存储IP地址在多个待存储IP地址中的次序,待存储IP地址对应的详细信息的数据量,实现第一位置信息的有效确定。
作为一种可能的实现方式,所述第二位置信息用于指示所述第二存储位置与所述所需的存储空间的起始位置之间的偏移量,该偏移量表示为:256k+(n-1)*6,其中,n代表该待存储IP地址为多个待存储IP地址中的第n个待存储IP地址;所述第二存储位置包括6个字节,前2个字节为该待存储IP地址的后16位,后4个字节为所述第二位置信息。
在本申请实施例中,通过待存储IP地址在多个待存储IP地址中的次序,实现第二位置信息的有效确定。
作为一种可能的实现方式,所述第三存储位置与所述所需的存储空间的起始位置之间的偏移量表示为:((a-1)*255+b)*4,其中,a为待存储IP地址在点分十进制下的第一个值,b为待存储IP地址在点分十进制下的第二个值。
在本申请实施例中,通过待存储IP地址在点分十进制下的第一个值,和待存储IP地址在点分十进制下的第二个值,在不用对IP地址进行解析的情况下,实现第三存储位置的有效确定。
第二方面,本申请实施例提供一种IP地址的处理方法,包括:获取待检索IP地址和IP地址库;所述待检索IP地址和所述IP地址库中的IP地址均为IPv4地址,所述IP地址库包括:第一存储部分、第二存储部分和第三存储部分,所述第一存储部分用于存储IP地址对应的详细信息,所述第二存储部分用于存储第一位置信息和IP地址的后16位,所述第三存储部分用于存储第二位置信息;其中,所述第一位置信息用于指示IP地址对应的详细信息的存储位置,所述第二位置信息用于指示所述第一位置信息和IP地址的后16位的存储位置;在所述第三存储部分中查找所述待检索IP地址对应的地址范围的第二位置信息;根据所述待检索IP地址对应的地址范围的第二位置信息在所述第二存储部分中查找所述待检索IP地址的第一位置信息;根据所述待检索IP地址的第一位置信息在所述第一存储部分中查找所述待检索IP地址对应的详细信息并反馈。
在本申请实施例中,通过前述的IP地址的存储方式,可获得具备索引信息的IP地址库,基于该IP地址库,在进行IP地址的检索时,先查找待检索IP地址对应的地址范围的第二位置信息(即第二存储部分的索引信息),然后利用该第二位置信息,查找待检索IP地址的第一位置信息(即第一存储部分的索引信息)。进而,利用第一位置信息,精准定位到待检索IP地址的详细信息并反馈。
通过基于索引信息的IP地址检索方式,提高IP地址的易检索性。
作为一种可能的实现方式,所述待检索IP地址对应的地址范围的第二位置信息,包括:所述地址范围内的第一个IP地址的第二位置信息和最后一个IP地址的第二位置信息,所述根据所述待检索IP地址对应的地址范围的第二位置信息在所述第二存储部分中查找所述待检索IP地址的第一位置信息,包括:确定所述第一个IP地址的第二位置信息指示的存储位置和所述最后一个IP地址的第二位置信息指示的存储位置之间的存储位置中存储的IP地址后16位中,与所述待检索IP地址的后16位相同的匹配IP地址后16位;将所述匹配IP地址后16位对应的第一位置信息确定为所述待检索IP地址的第一位置信息。
在本申请实施例中,通过地址范围内的第一个IP地址的第二位置信息和最后一个IP地址的第二位置信息,确定与待检索IP地址的后16位相同的匹配IP地址后16位,基于该匹配IP地址后16位,实现待检索IP地址的第一位置信息的有效确定。
第三方面,本申请实施例提供一种IP地址的处理装置,包括:用于实现第一方面以及第一方面的任意一种可能的实现方式中所述的IP地址的处理方法的各个功能模块。
第四方面,本申请实施例提供又一种IP地址的处理装置,包括:用于实现第二方面以及第二方面的任意一种可能的实现方式中所述的IP地址的处理方法的各个功能模块。
第五方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,所述计算机程序被计算机运行时,执行如第一方面以及第一方面的任意一种可能的实现方式,或者第二方面以及第二方面的任意一种可能的实现方式中所述的IP地址的处理方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的IP地址的处理方法的第一实施例的流程图;
图2为本申请实施例提供的IP地址的存储格式的示意图;
图3为本申请实施例提供的IP地址的存储流程的示意图;
图4为本申请实施例提供的IP地址的处理方法的第二实施例的流程图;
图5为本申请实施例提供的IP地址的检索流程的示意图;
图6为本申请实施例提供的第一处理装置的结构示意图;
图7为本申请实施例提供的第二处理装置的结构示意图。
图标:600-第一处理装置;610-第一获取模块;620-存储模块;700-第二处理装置;710-第二获取模块;720-检索模块。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
本申请实施例提供的技术方案可以应用于IP地址的存储以及检索的应用场景中。在这些应用场景中,该技术方案的硬件运行环境可以是IP地址的管理端,例如:IP地址库的管理端,该管理端包括但不限于服务器、服务器+客户端、服务器+浏览器等表现形式。
本申请实施例中所应用的IP地址可以为IPv4地址,对于其他类型的IP地址,也可按照本申请的发明构思进行IP地址的存储或者检索。
在本申请实施例中,IP地址的处理流程包括两部分:存储流程和检索流程,存储流程可以理解为将需要入库存储的IP地址进行存储的过程,检索流程可以理解为基于已有的IP地址库检索指定的IP地址信息。
基于上述应用场景的介绍,接下来请参照图1,为本申请实施例提供的IP地址的处理方法的流程图,该流程图为IP地址的存储过程,该处理方法包括:
步骤110:获取多个待存储IP地址和多个待存储IP地址分别对应的详细信息。多个待存储IP地址均为IPv4地址。
步骤120:将多个待存储IP地址对应的存储空间划分为第一存储部分、第二存储部分和第三存储部分。
步骤130:针对任意一个待存储IP地址,根据多个待存储IP地址的数量和该待存储IP地址对应的详细信息的数据量确定第一存储位置,并将该待存储IP地址对应的详细信息存储到所述第一存储位置。第一存储位置属于所述第一存储部分。
步骤140:确定第一位置信息。第一位置信息用于指示第一存储位置。
步骤150:确定第二存储位置,并将第一位置信息和该待存储IP地址的后16位存储到第二存储位置。第二存储位置属于第二存储部分。
步骤160:确定第二位置信息。第二位置信息用于指示第二存储位置。
步骤170:根据该待存储IP地址的前16位确定第三存储位置,并将第二位置信息存储到第三存储位置。第三存储位置属于第三存储部分。
在本申请实施例中,针对待存储IP地址,将其对应的存储空间划分为三个存储部分。通过第一存储部分,存储IP地址对应的详细信息;通过第二存储部分,存储用于指示详细信息的存储位置的位置信息和IP地址的前16位,实现第一存储部分的索引信息的存储;通过第三存储部分,存储用于指示详细信息的索引信息的存储位置的位置信息,实现第二存储部分的索引信息的存储。
上述的存储方式,无需基于所支持的数据结构对IP地址进行解析,只需将IP地址的详细信息存储到对应的存储位置,以及确定并存储相应的索引信息,降低了IP地址存储的繁琐性,实现IP地址的简单且有效的存储。并且,由于存储的IP地址具备索引信息,在检索时,可以基于这些索引信息实现快速检索,提高IP地址的易检索性。
接下来对IP地址的存储过程进行详细介绍。
在步骤110中,多个待存储IP地址可以理解为需要进行入库存储IPv4地址。
详细信息,可以理解为IP地址的描述信息,包括但不限于:归属地、运营商等。该详细信息,需要与IP地址一并进行存储,在后续检索时,主要是对该详细信息进行查询。
在步骤120中,将多个待存储IP地址对应的存储空间划分为第一存储部分、第二存储部分和第三存储部分。
在本申请实施例中,所需的存储空间被划分为第一存储部分、第二存储部分以及第三存储部分。其中,第一存储部分用于存储IP地址对应的详细信息,第二存储部分用于存储第一存储部分的索引信息,第三存储部分用于存储第二存储部分的索引信息。
在本申请实施例中,多个待存储IP地址对应的存储空间可表示为:Q≥m*s+m*q1+255*255*q2,其中,m代表多个待存储IP地址的数量,s代表每个待存储IP地址对应的详细信息的数据量,q1代表每个待存储IP地址的第一存储部分的索引信息所占的字节数,q2代表每个待存储IP地址的第二存储部分的索引信息所占的字节数。
从该存储空间的表达可以看出,第一存储部分无需特地划分,第二存储部分可以基于待存储IP地址的后16位地址所占的字节数、第一位置信息所占的字节数和多个待存储IP地址的数量确定,第三存储部分在存储空间中占用固定存储空间。
具体的,在存储各个待存储IP地址时,依次将分别对应的详细信息存到存储空间的末端即可。即,第一存储部分无需知道存储的数据量,因为其存储在文件最后,又因为是顺序存储,相同的IP数据只可能出现在相邻的IP之间,所以只要和上一个存储数据不同,就直接往库文件最后写就可以。
在执行步骤150时,可对第二存储部分进行确定,并预留第三存储部分,即,在第二存储部分已确定的基础上,预留第三部分所需的固定存储空间。最后,在执行步骤170时,将对应的内容存储到第三存储部分中即可。
在一些实施例中,第一存储部分的索引信息所占的字节数为6个字节,第二存储部分的索引信息所占的字节数为4个字节。
作为一种可选的实施方式,确定第二存储部分,包括:根据待存储IP地址的后16位地址所占的字节数、第一位置信息所占的字节数和多个待存储IP地址的数量确定第二存储部分。
在本申请实施例中,第二存储部分用于存储IP地址的后16位和第一位置信息。因此,待存储IP地址的后16位地址所占的字节数和第一位置信息所占的字节数的总和便为每个待存储IP地址的第一存储部分的索引信息所需的存储空间,然后再乘以待存储IP地址的数量,所获得的结果便为第二存储部分。
在本申请实施例中,第三存储部分用于存储第二位置信息,占用的是固定的存储空间,直接将其存储到固定的存储空间中即可,因此,无需单独确定第三存储部分。
在本申请实施例中,通过待存储IP地址的后16位地址所占的字节数、第一位置信息所占的字节数和多个待存储IP地址的数量,确定第二存储部分;通过固定存储空间作为第三存储部分,实现三个存储部分的有效划分。在步骤130-步骤170中,为针对各个待存储IP地址的存储方式,可以理解,每个待存储IP地址都按照步骤130-步骤170的方式进行存储。
在步骤130中,根据多个待存储IP地址的数量和该待存储IP地址(即当前待存储IP地址)对应的详细信息的数据量确定第一存储位置,并将该待存储IP地址对应的详细信息存储到第一存储位置,第一存储位置属于第一存储部分。
作为一种可选的实施方式,第一存储位置为距离总存储空间的起始位置256k+m*6+(n-1)*s处的位置。其中,m为多个待存储IP地址的数量,n代表该待存储IP地址为m个待存储IP地址中的第n个待存储IP地址,s代表该待存储IP地址对应的详细信息的数据量。
对应的,在步骤140中,第一位置信息为第一存储位置与所需的存储空间的起始位置之间的偏移量,该偏移量表示为上述的:256k+m*6+(n-1)*s。
因此,在确定第一存储位置时,计算出上述偏移量,然后基于起始位置和偏移量便可确定第一存储位置。
在存储详细信息时,可以将待存储的详细信息与前一个已存储的详细信息进行比较,如果相同,则只保存已存储的详细信息,无需再重复存储详细信息。
此外,在本申请实施例中,第一存储部分在总存储空间的末端,第二存储部分在总存储空间的中间,第三存储部分在总存储空间的首端,以便于后续进行检索时,从首端开始进行检索。
在本申请实施例中,通过多个待存储IP地址的数量、待存储IP地址在多个待存储IP地址中的次序,待存储IP地址对应的详细信息的数据量,实现第一位置信息的有效确定。
在步骤150中,确定第二存储位置,并将第一位置信息和该待存储IP地址的后16位存储到第二存储位置;第二存储位置属于第二存储部分。
作为一种可选的实施方式,第二存储位置为距离总存储空间的起始位置256k+(n-1)*6处的位置,其中,n代表该待存储IP地址为多个待存储IP地址中的第n个待存储IP地址;第二存储位置包括6个字节,前2个字节为该待存储IP地址的后16位,后4个字节为第二位置信息。
对应的,步骤160中所确定的第二位置信息用于指示第二存储位置与所需的存储空间的起始位置之间的偏移量,该偏移量表示为上述的256k+(n-1)*6。
因此,在确定第二存储位置时,计算出上述偏移量,然后根据起始位置和上述偏移量便能确定第二存储位置。
在这种实施方式中,第二存储部分中的每个IP条目占用6个字节,前2个字节存储IP地址的后16位,后4个字节存储前述的第一位置信息。
在本申请实施例中,通过待存储IP地址在多个待存储IP地址中的次序,实现第二位置信息的有效确定。
在步骤170中,根据该待存储IP地址的前16位确定第三存储位置,并将第二位置信息存储到第三存储位置;第三存储位置属于第三存储部分。
在这种实施方式中,第三存储位置与所需的存储空间的起始位置之间的偏移量可表示为:((a-1)*255+b)*4,其中,a为待存储IP地址在点分十进制下的第一个值,b为待存储IP地址在点分十进制下的第二个值。
因此,在确定第三存储位置时,将待存储IP地址在点分十进制下的第一个值和第二个值按照上述偏移量的计算公式进行计算,获得偏移量,基于该偏移量,便可确定第三存储位置。
在本申请实施例中,通过待存储IP地址在点分十进制下的第一个值,和待存储IP地址在点分十进制下的第二个值,在不用对IP地址进行解析的情况下,实现第三存储位置的有效确定。
基于第三存储位置,将第二位置信息存储到第三存储位置,至此,完成待存储IP地址的所有信息的存储。
依次对每个待存储IP地址按照相同的方式进行处理,即可实现所有的待存储IP地址的所有信息的存储,进而完成待存储IP地址的存储。
为了便于理解,接下来请参照图2,为本申请实施例提供的IP地址的存储格式的示意图,在图2中,第一存储部分用于存储IP地址的详细信息,第二存储部分用于存储IP地址的后16位以及详细信息在第一存储部分中的存储位置的偏移信息(即第一位置信息),每个IP后16位存储占用2个字节,偏移量占用4个字节。
第三存储部分占用256k的存储空间,并将其以4个字节大小的分割,共255*255个小内存块,为IPv4地址中所有高16位的IP地址(例如:1.1-255.255)都预留一个小内存块。此内存块将用来存储IPv4地址库中包含的所有IP地址在文件第二存储部分的存储地址的偏移量(即第二位置信息)。
进而,基于图2所示的存储格式,在实际应用时,一种可选的存储流程如图3所示,在图3中,首先确定所存储的IPv4地址库所包含的IP地址的数量以及每个IP所对应的详细信息数据的大小,用来计算所要预留的空间。
如需要存储的IP地址的总个数为m,每个IP对应的详细数据大小为s,则第n个IP地址a.b.c.d的存储过程如下:
1.首先,存储IPv4地址库的第一部分,并预留出第二和第三部分的空间,将该IP库中所有的IP相关信息存储在文件起始偏移256k+m*6+(n-1)*s的位置,由于IP地址为连续存储,而一些连续IP的归属地之类的信息相同,因此,可根据需求,将连续IP中同样的详细信息只保存第一份,直到出现不一样的信息为止。
2.然后,存储IPv4地址库的第二部分,并预留出第三部分的空间。因为不同的IPv4地址的详细信息可能一样,所以将其详细信息的偏移量以及其后16位存储在这一部分,作为第一部分的索引,以提高该IP地址库在IP匹配时的匹配效率。具体操作为将步骤1中存储位置离文件起始地址的偏移量以及该IP后16位存储在离文件起始偏移256k+(n-1)*6的位置,每个IP条目占用6个字节,前2个字节存储IP地址的后16位,后4个字节存储详细地址的偏移量。
3.最后存储IPv4地址库的第三部分,该部分将使用所有IPv4地址的前16位作为索引存储,如此可使该地址库在无需加载的情况下,就可通过IP地址自己的前16位快速定位到该地址库第二部分的索引位置。具体步骤为取出该IP的点分十进制下的前两个值a和b,将步骤2中所存储的位置距离文件起始的偏移量存储在距离文件起始地址偏移((a-1)*255+b)*4的位置中。
基于上述的存储过程的介绍,接下来请参照图4,为本申请实施例提供的IP地址的处理方法的又一流程图,该流程图对应IP地址的检索过程,该处理方法包括:
步骤410:获取待检索IP地址和IP地址库。
结合前述的存储过程的介绍,IP地址库为通过上述的存储过程所生成的IP地址库。
因此,待检索IP地址和IP地址库中的IP地址均为IPv4地址,IP地址库包括:第一存储部分、第二存储部分和第三存储部分,第一存储部分用于存储IP地址对应的详细信息,第二存储部分用于存储第一位置信息和IP地址的后16位,第三存储部分用于存储第二位置信息;其中,第一位置信息用于指示IP地址对应的详细信息的存储位置,第二位置信息用于指示所述第一位置信息和IP地址的后16位的存储位置。
步骤420:在第三存储部分中查找待检索IP地址对应的地址范围的第二位置信息。
步骤430:根据待检索IP地址对应的地址范围的第二位置信息在第二存储部分中查找待检索IP地址的第一位置信息。
步骤440:根据待检索IP地址的第一位置信息在第一存储部分中查找待检索IP地址对应的详细信息并反馈。
在本申请实施例中,通过前述的IP地址的存储方式,可获得具备索引信息的IP地址库,基于该IP地址库,在进行IP地址的检索时,先查找待检索IP地址对应的地址范围的第二位置信息(即第二存储部分的索引信息),然后利用该第二位置信息,查找待检索IP地址的第一位置信息(即第一存储部分的索引信息)。进而,利用第一位置信息,精准定位到待检索IP地址的详细信息并反馈。
通过基于索引信息的IP地址检索方式,提高IP地址的易检索性。
在步骤420中,待检索IP地址对应的地址范围,以a.b.c.d(IPv4地址的点分十进制表示)为例,该地址范围的第一个地址为:a.b开头的第一个地址,该地址范围的最后一个地址为a.b+1开头的第一个地址。
对于该地址范围的第二位置信息,为a.b开头的第一个地址至为a.b+1开头的第一个地址之间的所有地址的第二位置信息。
对于第二位置信息,存储在第三存储部分中,且在第三存储部分中的存储位置与a和b有关系,因此,直接按照前述的计算公式:((a-1)*255+b)*4,结合a和b的具体值,便可确定a.b开头的第一个地址至为a.b+1开头的第一个地址之间的所有地址的第二位置信息的存储位置,然后在对应的存储位置处便可查找到该地址范围内的所有地址的第二位置信息。
基于该地址范围的第二位置信息,在步骤430中,确定待检索IP地址的第一位置信息。
作为一种可选的实施方式,步骤430包括:确定第一个IP地址的第二位置信息指示的存储位置和最后一个IP地址的第二位置信息指示的存储位置之间的存储位置中存储的IP地址后16位中,与待检索IP地址的后16位相同的匹配IP地址后16位;将匹配IP地址后16位对应的第一位置信息确定为待检索IP地址的第一位置信息。
在这种实施方式中,由于查找到地址范围对应的所有地址的第二位置信息,但是无法确定哪一个位置存储的才是待检索IP地址的第一位置信息。因此,将这些位置存储的IP地址后16位与待检索IP地址的后16位进行比较,当查找到与待检索IP地址的后16位相同的IP地址后16位时,与该IP地址后16位一并存储的第一位置信息便为待检索IP地址的第一位置信息。
在本申请实施例中,通过地址范围内的第一个IP地址的第二位置信息和最后一个IP地址的第二位置信息,确定与待检索IP地址的后16位相同的匹配IP地址后16位,基于该匹配IP地址后16位,实现待检索IP地址的第一位置信息的有效确定。
在确定待检索IP地址的第一位置信息之后,在步骤440中,直接在第一位置信息所指示的存储位置处,便可获取到待检索IP地址的详细信息,实现详细信息的查找。
在查找到详细信息之后,将其进行反馈,便完成IP地址的检索。
如果在步骤410中,为用户发起的检索请求,则直接将检索结果反馈给用户;如果是其他处理流程发起的检索请求,则反馈给处理流程对应的处理端。或者,其他反馈方式,在此不作限定。
为了便于理解,请参照图5,为本申请实施例提供的一种可选的检索流程,在该检索流程中:
在IP检索的时候只需要先取出所匹配IP的点分十进制下的前两个值,并计算出该IP索引的偏移位置。如:a.b.c.d中的a和b,计算出((a-1)*255+b)*4的值,从地址库起始地址偏移这么长的地址,就可以取出库中第二部分存储的以a.b开头的IP地址存储的起始地址。
再用相同的方法计算出以a.(b+1)开头的IP地址存储的起始地址,那么这两个地址之间就是该地址库中存储的以a.b开头的全部IP地址后16位+索引位置的存储空间。
将该存储空间以每6个字节一份切割,将所检索的IP后十六位与这些切割后的空间中的前2个字节中存储的IP后十六位进行大小比较,因为存储方式为顺序存储,所以使用二分法即可很快的查找匹配到存储自己后16位的空间,然后取该空间的后4位存储数据,即是a.b.c.d地址在库中第二部分存储的偏移量,最后从库起始地址偏移,就可以拿到该IP地址的详细数据。
在本申请实施例中,通过将IPv4地址的前16位和后16位作为索引,将IP地址存储在地址库文件中,实现一种易分发,易检索,无需解析的IPv4地址存储方案,从而解决了在使用地址库时需要繁琐的地址库解析过程的问题。
基于同一发明构思,请参照图6,本申请实施例中提供一种IP地址的第一处理装置600,包括:第一获取模块610和存储模块620,该第一处理装置600与前述图1所示的IP地址的处理方法对应。
第一获取模块610用于:获取多个待存储IP地址和所述多个待存储IP地址分别对应的详细信息;所述多个待存储IP地址均为IPv4地址。
存储模块620用于:将所述多个待存储IP地址对应的存储空间划分为第一存储部分、第二存储部分和第三存储部分;针对任意一个待存储IP地址,根据所述多个待存储IP地址的数量和该待存储IP地址对应的详细信息的数据量确定第一存储位置,并将该待存储IP地址对应的详细信息存储到所述第一存储位置;所述第一存储位置属于所述第一存储部分;确定第一位置信息;所述第一位置信息用于指示所述第一存储位置;确定第二存储位置,并将所述第一位置信息和该待存储IP地址的后16位存储到所述第二存储位置;所述第二存储位置属于所述第二存储部分;确定第二位置信息;所述第二位置信息用于指示所述第二存储位置;根据该待存储IP地址的前16位确定第三存储位置,并将所述第二位置信息存储到所述第三存储位置;所述第三存储位置属于所述第三存储部分。
第一处理装置600与前述图1所示的方法流程对应,因此,各个功能模块的实施方式参照前述的方法实施方式的介绍,在此不再重复介绍。
基于同一发明构思,请参照图7,本申请实施例中提供一种IP地址的第二处理装置700,包括:第二获取模块710和检索模块720,该第二处理装置700与前述图4所示的IP地址的处理方法对应。
第二获取模块710用于:获取待检索IP地址和IP地址库;所述待检索IP地址和所述IP地址库中的IP地址均为IPv4地址,所述IP地址库包括:第一存储部分、第二存储部分和第三存储部分,所述第一存储部分用于存储IP地址对应的详细信息,所述第二存储部分用于存储第一位置信息和IP地址的后16位,所述第三存储部分用于存储第二位置信息;其中,所述第一位置信息用于指示IP地址对应的详细信息的存储位置,所述第二位置信息用于指示所述第一位置信息和IP地址的后16位的存储位置。
检索模块720用于:在所述第三存储部分中查找所述待检索IP地址对应的地址范围的第二位置信息;根据所述待检索IP地址对应的地址范围的第二位置信息在所述第二存储部分中查找所述待检索IP地址的第一位置信息;根据所述待检索IP地址的第一位置信息在所述第一存储部分中查找所述待检索IP地址对应的详细信息并反馈。
在本申请实施例中,检索模块720具体用于:确定所述第一个IP地址的第二位置信息指示的存储位置和所述最后一个IP地址的第二位置信息指示的存储位置之间的存储位置中存储的IP地址后16位中,与所述待检索IP地址的后16位相同的匹配IP地址后16位;将所述匹配IP地址后16位对应的第一位置信息确定为所述待检索IP地址的第一位置信息。
第二处理装置700与前述图4所示的方法流程对应,因此,各个功能模块的实施方式参照前述的方法实施方式的介绍,在此不再重复介绍。
基于同一发明构思,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,所述计算机程序被计算机运行时,执行前述图1或者图4所述的IP地址的处理方法。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (7)

1.一种IP地址的处理方法,其特征在于,包括:
获取多个待存储IP地址和所述多个待存储IP地址分别对应的详细信息,所述详细信息为IP地址的描述信息,包括但不限于:归属地和运营商;所述多个待存储IP地址均为IPv4地址;
将所述多个待存储IP地址对应的存储空间划分为第一存储部分、第二存储部分和第三存储部分,所述第一存储部分在所述存储空间的末端,所述第二存储部分在所述存储空间的中间,所述第三存储部分在所述存储空间的首端;
针对任意一个待存储IP地址,根据所述多个待存储IP地址的数量和该待存储IP地址对应的详细信息的数据量确定第一存储位置,并将该待存储IP地址对应的详细信息存储到所述第一存储位置;所述第一存储位置属于所述第一存储部分;
确定第一位置信息;所述第一位置信息用于指示所述第一存储位置;
确定第二存储位置,并将所述第一位置信息和该待存储IP地址的后16位存储到所述第二存储位置;所述第二存储位置属于所述第二存储部分;
确定第二位置信息;所述第二位置信息用于指示所述第二存储位置;
根据该待存储IP地址的前16位确定第三存储位置,并将所述第二位置信息存储到所述第三存储位置;所述第三存储位置属于所述第三存储部分;
所述第一位置信息用于指示所述第一存储位置与所需的存储空间的起始位置之间的偏移量,该偏移量表示为:256k+m*6+(n-1)*s,其中,m为多个待存储IP地址的数量,n代表该待存储IP地址为m个待存储IP地址中的第n个待存储IP地址,s代表该待存储IP地址对应的详细信息的数据量;
所述第二位置信息用于指示所述第二存储位置与所述所需的存储空间的起始位置之间的偏移量,该偏移量表示为:256k+(n-1)*6,其中,n代表该待存储IP地址为多个待存储IP地址中的第n个待存储IP地址;
所述第二存储位置包括6个字节,前2个字节为该待存储IP地址的后16位,后4个字节为所述第二位置信息;
所述第三存储位置与所述所需的存储空间的起始位置之间的偏移量表示为:((a-1)*255+b)*4,其中,a为待存储IP地址在点分十进制下的第一个值,b为待存储IP地址在点分十进制下的第二个值。
2.根据权利要求1所述的处理方法,其特征在于,所述第二存储部分基于待存储IP地址的后16位地址所占的字节数、第一位置信息所占的字节数和多个待存储IP地址的数量确定,所述第三存储部分在所述存储空间中占用固定存储空间。
3.一种IP地址的处理方法,其特征在于,包括:
获取待检索IP地址和IP地址库,所述IP地址库为根据权利要求1或2所述的IP地址的处理方法生成的IP地址库;
所述待检索IP地址和所述IP地址库中的IP地址均为IPv4地址,所述IP地址库包括:第一存储部分、第二存储部分和第三存储部分,所述第一存储部分在所述IP地址库的末端,所述第二存储部分在所述IP地址库的中间,所述第三存储部分在所述IP地址库的首端,所述第一存储部分用于存储IP地址对应的详细信息,所述详细信息为IP地址的描述信息,包括但不限于:归属地和运营商,所述第二存储部分用于存储第一位置信息和IP地址的后16位,所述第三存储部分用于存储第二位置信息;其中,所述第一位置信息用于指示IP地址对应的详细信息的存储位置,所述第二位置信息用于指示所述第一位置信息和IP地址的后16位的存储位置;
在所述第三存储部分中查找所述待检索IP地址对应的地址范围的第二位置信息;
根据所述待检索IP地址对应的地址范围的第二位置信息在所述第二存储部分中查找所述待检索IP地址的第一位置信息;
根据所述待检索IP地址的第一位置信息在所述第一存储部分中查找所述待检索IP地址对应的详细信息并反馈;
所述第一位置信息用于指示第一存储位置与所需的存储空间的起始位置之间的偏移量,该偏移量表示为:256k+m*6+(n-1)*s,其中,m为多个待存储IP地址的数量,n代表该待存储IP地址为m个待存储IP地址中的第n个待存储IP地址,s代表该待存储IP地址对应的详细信息的数据量;
所述第二位置信息用于指示第二存储位置与所述所需的存储空间的起始位置之间的偏移量,该偏移量表示为:256k+(n-1)*6,其中,n代表该待存储IP地址为多个待存储IP地址中的第n个待存储IP地址;
所述第二存储位置包括6个字节,前2个字节为该待存储IP地址的后16位,后4个字节为所述第二位置信息;
所述第三存储位置与所述所需的存储空间的起始位置之间的偏移量表示为:((a-1)*255+b)*4,其中,a为待存储IP地址在点分十进制下的第一个值,b为待存储IP地址在点分十进制下的第二个值。
4.根据权利要求3所述的处理方法,其特征在于,所述待检索IP地址对应的地址范围的第二位置信息,包括:所述地址范围内的第一个IP地址的第二位置信息和最后一个IP地址的第二位置信息,所述根据所述待检索IP地址对应的地址范围的第二位置信息在所述第二存储部分中查找所述待检索IP地址的第一位置信息,包括:
确定所述第一个IP地址的第二位置信息指示的存储位置和所述最后一个IP地址的第二位置信息指示的存储位置之间的存储位置中存储的IP地址后16位中,与所述待检索IP地址的后16位相同的匹配IP地址后16位;
将所述匹配IP地址后16位对应的第一位置信息确定为所述待检索IP地址的第一位置信息。
5.一种IP地址的处理装置,其特征在于,包括:
获取模块,用于获取多个待存储IP地址和所述多个待存储IP地址分别对应的详细信息,所述详细信息为IP地址的描述信息,包括但不限于:归属地和运营商;所述多个待存储IP地址均为IPv4地址;
存储模块,用于:
将所述多个待存储IP地址对应的存储空间划分为第一存储部分、第二存储部分和第三存储部分,所述第一存储部分在所述存储空间的末端,所述第二存储部分在所述存储空间的中间,所述第三存储部分在所述存储空间的首端;
针对任意一个待存储IP地址,根据所述多个待存储IP地址的数量和该待存储IP地址对应的详细信息的数据量确定第一存储位置,并将该待存储IP地址对应的详细信息存储到所述第一存储位置;所述第一存储位置属于所述第一存储部分;
确定第一位置信息;所述第一位置信息用于指示所述第一存储位置;
确定第二存储位置,并将所述第一位置信息和该待存储IP地址的后16位存储到所述第二存储位置;所述第二存储位置属于所述第二存储部分;
确定第二位置信息;所述第二位置信息用于指示所述第二存储位置;
根据该待存储IP地址的前16位确定第三存储位置,并将所述第二位置信息存储到所述第三存储位置;所述第三存储位置属于所述第三存储部分;
所述第一位置信息用于指示所述第一存储位置与所需的存储空间的起始位置之间的偏移量,该偏移量表示为:256k+m*6+(n-1)*s,其中,m为多个待存储IP地址的数量,n代表该待存储IP地址为m个待存储IP地址中的第n个待存储IP地址,s代表该待存储IP地址对应的详细信息的数据量;
所述第二位置信息用于指示所述第二存储位置与所述所需的存储空间的起始位置之间的偏移量,该偏移量表示为:256k+(n-1)*6,其中,n代表该待存储IP地址为多个待存储IP地址中的第n个待存储IP地址;
所述第二存储位置包括6个字节,前2个字节为该待存储IP地址的后16位,后4个字节为所述第二位置信息;
所述第三存储位置与所述所需的存储空间的起始位置之间的偏移量表示为:((a-1)*255+b)*4,其中,a为待存储IP地址在点分十进制下的第一个值,b为待存储IP地址在点分十进制下的第二个值。
6.一种IP地址的处理装置,其特征在于,包括:
获取模块,用于获取待检索IP地址和IP地址库,所述IP地址库为根据权利要求1或2所述的IP地址的处理方法生成的IP地址库;
所述待检索IP地址和所述IP地址库中的IP地址均为IPv4地址,所述IP地址库包括:第一存储部分、第二存储部分和第三存储部分,所述第一存储部分在所述IP地址库的末端,所述第二存储部分在所述IP地址库的中间,所述第三存储部分在所述IP地址库的首端,所述第一存储部分用于存储IP地址对应的详细信息,所述详细信息为IP地址的描述信息,包括但不限于:归属地和运营商,所述第二存储部分用于存储第一位置信息和IP地址的后16位,所述第三存储部分用于存储第二位置信息;其中,所述第一位置信息用于指示IP地址对应的详细信息的存储位置,所述第二位置信息用于指示所述第一位置信息和IP地址的后16位的存储位置;
检索模块,用于:
在所述第三存储部分中查找所述待检索IP地址对应的地址范围的第二位置信息;
根据所述待检索IP地址对应的地址范围的第二位置信息在所述第二存储部分中查找所述待检索IP地址的第一位置信息;
根据所述待检索IP地址的第一位置信息在所述第一存储部分中查找所述待检索IP地址对应的详细信息并反馈;
所述第一位置信息用于指示所述第一存储位置与所需的存储空间的起始位置之间的偏移量,该偏移量表示为:256k+m*6+(n-1)*s,其中,m为多个待存储IP地址的数量,n代表该待存储IP地址为m个待存储IP地址中的第n个待存储IP地址,s代表该待存储IP地址对应的详细信息的数据量;
所述第二位置信息用于指示所述第二存储位置与所述所需的存储空间的起始位置之间的偏移量,该偏移量表示为:256k+(n-1)*6,其中,n代表该待存储IP地址为多个待存储IP地址中的第n个待存储IP地址;
所述第二存储位置包括6个字节,前2个字节为该待存储IP地址的后16位,后4个字节为所述第二位置信息;
所述第三存储位置与所述所需的存储空间的起始位置之间的偏移量表示为:((a-1)*255+b)*4,其中,a为待存储IP地址在点分十进制下的第一个值,b为待存储IP地址在点分十进制下的第二个值。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被计算机运行时,执行如权利要求1-4任一项所述的IP地址的处理方法。
CN202111652667.6A 2021-12-30 2021-12-30 Ip地址的处理方法、装置、存储介质 Active CN114285797B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111652667.6A CN114285797B (zh) 2021-12-30 2021-12-30 Ip地址的处理方法、装置、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111652667.6A CN114285797B (zh) 2021-12-30 2021-12-30 Ip地址的处理方法、装置、存储介质

Publications (2)

Publication Number Publication Date
CN114285797A CN114285797A (zh) 2022-04-05
CN114285797B true CN114285797B (zh) 2024-04-19

Family

ID=80878946

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111652667.6A Active CN114285797B (zh) 2021-12-30 2021-12-30 Ip地址的处理方法、装置、存储介质

Country Status (1)

Country Link
CN (1) CN114285797B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1496070A (zh) * 2000-05-30 2004-05-12 ������������ʽ���� 多点通信方法和装置
CN102223289A (zh) * 2010-04-15 2011-10-19 杭州华三通信技术有限公司 一种存储IPv4地址和IPv6地址的方法和装置
CN104217034A (zh) * 2014-09-29 2014-12-17 北京北纬点易信息技术有限公司 基于指针操作的ip地址快速检索相关信息的方法
CN104424197A (zh) * 2013-08-20 2015-03-18 北京启明星辰信息安全技术有限公司 一种ip地址库检索方法及系统
CN109085999A (zh) * 2018-06-15 2018-12-25 华为技术有限公司 数据处理方法及处理系统
CN110855812A (zh) * 2019-11-28 2020-02-28 中国银行股份有限公司 基于ip地址的定位方法、装置和设备
CN111399756A (zh) * 2019-09-29 2020-07-10 杭州海康威视系统技术有限公司 一种数据存储方法、数据下载方法及装置
CN112307138A (zh) * 2019-07-30 2021-02-02 华扬联众数字技术股份有限公司 地域信息的存储和查询方法、系统与介质
CN112347377A (zh) * 2020-10-13 2021-02-09 咪咕视讯科技有限公司 Ip地址段查找方法与业务调度方法、装置、电子设备
CN112804226A (zh) * 2021-01-08 2021-05-14 光通天下网络科技股份有限公司 Ip数据处理方法、装置、设备及介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150295883A1 (en) * 2014-04-09 2015-10-15 Freescale Semiconductor, Inc. Storage and retrieval of information using internet protocol addresses

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1496070A (zh) * 2000-05-30 2004-05-12 ������������ʽ���� 多点通信方法和装置
CN102223289A (zh) * 2010-04-15 2011-10-19 杭州华三通信技术有限公司 一种存储IPv4地址和IPv6地址的方法和装置
CN104424197A (zh) * 2013-08-20 2015-03-18 北京启明星辰信息安全技术有限公司 一种ip地址库检索方法及系统
CN104217034A (zh) * 2014-09-29 2014-12-17 北京北纬点易信息技术有限公司 基于指针操作的ip地址快速检索相关信息的方法
CN109085999A (zh) * 2018-06-15 2018-12-25 华为技术有限公司 数据处理方法及处理系统
CN112307138A (zh) * 2019-07-30 2021-02-02 华扬联众数字技术股份有限公司 地域信息的存储和查询方法、系统与介质
CN111399756A (zh) * 2019-09-29 2020-07-10 杭州海康威视系统技术有限公司 一种数据存储方法、数据下载方法及装置
CN110855812A (zh) * 2019-11-28 2020-02-28 中国银行股份有限公司 基于ip地址的定位方法、装置和设备
CN112347377A (zh) * 2020-10-13 2021-02-09 咪咕视讯科技有限公司 Ip地址段查找方法与业务调度方法、装置、电子设备
CN112804226A (zh) * 2021-01-08 2021-05-14 光通天下网络科技股份有限公司 Ip数据处理方法、装置、设备及介质

Also Published As

Publication number Publication date
CN114285797A (zh) 2022-04-05

Similar Documents

Publication Publication Date Title
US8433702B1 (en) Horizon histogram optimizations
CN110851209B (zh) 一种数据处理方法、装置、电子设备及存储介质
CN106886371B (zh) 缓存数据处理方法及装置
US20190272298A1 (en) Dynamic web page navigation
US11799961B2 (en) File directory traversal method, apparatus, device, and medium
CN108021333B (zh) 随机读写数据的系统、装置及方法
CN111221840A (zh) 数据处理方法及装置、数据缓存方法、存储介质、系统
CN110704376A (zh) 日志文件保存方法及装置
CN112148693A (zh) 一种数据处理方法、装置及存储介质
CN109325056A (zh) 一种大数据处理方法及装置、通信设备
CN111400334A (zh) 数据处理方法、装置、存储介质及电子装置
CN110334103B (zh) 推荐服务的更新方法、提供装置、访问装置和推荐系统
CN111400304A (zh) 一种获取截面日期全量数据的方法、装置、电子设备及存储介质
CN112613271A (zh) 数据分页方法、装置、计算机设备及存储介质
CN110020272B (zh) 缓存方法、装置以及计算机存储介质
CN110928900B (zh) 多表数据的查询方法、装置、终端以及计算机存储介质
CN109271193B (zh) 一种数据处理方法、装置、设备及存储介质
CN109240998B (zh) 可配置的文件解析方法
CN114285797B (zh) Ip地址的处理方法、装置、存储介质
CN113407356A (zh) 数据处理方法、装置、电子设备及存储介质
CN108494875A (zh) 一种反馈资源文件的方法和装置
CN110489483B (zh) 数据同步方法、装置、计算机设备以及存储介质
US11941007B2 (en) Method for reducing the computing time of a data processing unit
CN112100092A (zh) 一种信息缓存方法、装置、设备及介质
CN114237806B (zh) 一种页面信息的显示方法、装置、电子设备及存储介质

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
GR01 Patent grant
GR01 Patent grant