一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种地址段检索方法、装置、电子设备及存储介质与流程

2022-04-02 03:28:44 来源:中国专利 TAG:


1.本技术涉及计算机应用技术领域,特别是涉及一种地址段检索方法、装置、电子设备及存储介质。


背景技术:

2.互联网协议(internet protocol,ip)地址是ip协议提供的一种统一的地址格式。为便于ip地址的管理与使用,将多个ip地址划分至同一地址段,从而对每一地址段进行分配,例如,可以将该地址段分配给某一地区的某一运营商使用。因此,在获取到某一ip地址后,可以根据该ip地址检索该ip地址所在的地址段,从而确定该ip地址的归属信息等。
3.相关技术中,在检索某一ip地址所在的地址段时,可以根据ip地址的取值范围,通过二分查找的方式确定ip地址所在的地址段。
4.在上述检索过程中,二分查找的方式所对应的时间复杂度均为n=log22n,其中,2n为ip掩码的比特数。这将导致在ip地址段数量较小的情况下,仍需检索n次,导致地址段检索的效率较低。


技术实现要素:

5.本技术实施例的目的在于提供一种地址段检索方法、装置、电子设备及存储介质,以提高地址段检索的效率。具体技术方案如下:
6.本技术实施例提供了一种地址段检索方法,所述方法包括:
7.获取第一ip地址;
8.将所述第一ip地址转换为二进制数,得到第一数据串;
9.根据预先存储的第一对应关系,检索与所述第一数据串匹配的地址段,得到所述第一ip地址所在的第一地址段,其中,所述第一对应关系是根据每一第二地址段与每一第二地址段对应的第二数据串生成的,每一第二地址段对应的第二数据串是根据该第二地址段的ip掩码所对应的二进制数生成的。
10.可选的,所述方法还包括:
11.获取多个第二地址段;
12.针对每一第二地址段,将该第二地址段所对应的ip掩码转换为二进制数,得到第三数据串;
13.针对每一第二地址段,根据该第二地址段对应的ip掩码的第三数据串,生成该第二地址段对应的第二数据串;
14.基于每一第二地址段以及每一第二地址段对应的第二数据串,生成第一对应关系。
15.可选的,所述针对每一第二地址段,根据该第二地址段对应的ip掩码的第三数据串,生成该第二地址段对应的第二数据串的步骤,包括:
16.针对每一第二地址段,将该第二地址段对应ip掩码的第三数据串确定为该第二地
址段对应的第二数据串。
17.可选的,所述针对每一第二地址段,根据该第二地址段对应的ip掩码的第三数据串,生成该第二地址段对应的第二数据串的步骤,包括:
18.针对每一第二地址段,在该第二地址段对应ip掩码的第三数据串后补充预设数量个预设二进制数,得到该第二地址段对应的第二数据串。
19.可选的,所述基于每一第二地址段以及每一第二地址段对应的第二数据串,生成第一对应关系的步骤,包括:
20.根据每一第二地址段以及该第二地址段对应的第二数据串,生成第二地址段与第二数据串间的对应关系,得到第一对应关系。
21.可选的,所述根据预先存储的第一对应关系,检索与所述第一数据串匹配的地址段,得到所述第一ip地址所在的第一地址段的步骤,包括:
22.以所述第一数据串包括的二进制数的数量为目标数量,获取所述第一数据串中前目标数量个二进制数作为第四数据串;
23.若所述第一对应关系中未包括所述第四数据串,则将所述目标数量减一,并返回执行所述获取所述第一数据串中前目标数量个二进制数作为第四数据串的步骤;
24.若所述第一对应关系中包括所述第四数据串,则将所述第一对应关系中与该第四数据串对应的第二地址段,确定为所述第一ip地址所在的第一地址段。
25.可选的,所述基于每一第二地址段以及每一第二地址段对应的第二数据串,生成第一对应关系的步骤,包括:
26.针对每一第二地址段,利用预设哈希算法,计算该第二地址段对应的第二数据串的哈希值,得到该第二地址段对应的第一哈希值;
27.根据每一第二地址段以及该第二地址段对应的第一哈希值,生成第二地址段与第一哈希值间的对应关系,得到第一对应关系。
28.可选的,所述根据预先存储的第一对应关系,检索与所述第一数据串匹配的地址段,得到所述第一ip地址所在的第一地址段的步骤,包括:
29.以所述第一数据串包括的二进制数的数量为目标数量,利用预设哈希算法,计算所述第一数据串中前目标数量个二进制数的第二哈希值;
30.若所述第一对应关系中未包括所述第二哈希值,则将所述目标数量减一,并返回执行所述利用预设哈希算法,计算所述第一数据串中前目标数量个二进制数的第二哈希值的步骤;
31.若所述第一对应关系中包括所述第二哈希值,则将所述第一对应关系中与所述第一哈希值对应的第二地址段,确定为所述第一ip地址所在的第一地址段。
32.可选的,所述方法还包括:
33.根据预先存储第二地址段与归属信息间的第二对应关系,以及所述第一ip地址所在的第一地址段,确定所述第一ip地址的归属信息,所述归属信息包括国家、城市、运营商中的一个或多个。
34.本技术实施例提供了一种地址段检索装置,所述装置包括:
35.第一获取模块,用于获取第一ip地址;
36.第一转换模块,用于将所述第一ip地址转换为二进制数,得到第一数据串;
37.检索模块,用于根据预先存储的第一对应关系,检索与所述第一数据串匹配的地址段,得到所述第一ip地址所在的第一地址段,其中,所述第一对应关系是根据每一第二地址段与每一第二地址段对应的第二数据串生成的,每一第二地址段对应的第二数据串是根据该第二地址段的ip掩码所对应的二进制数生成的。
38.可选的,所述装置还包括:
39.第二获取模块,用于获取多个第二地址段;
40.第二转换模块,用于针对每一第二地址段,将该第二地址段所对应的ip掩码转换为二进制数,得到第三数据串;
41.第一生成模块,用于针对每一第二地址段,根据该第二地址段对应的ip掩码的第三数据串,生成该第二地址段对应的第二数据串;
42.第二生成模块,用于基于每一第二地址段以及每一第二地址段对应的第二数据串,生成第一对应关系。
43.可选的,所述第一生成模块,具体用于针对每一第二地址段,将该第二地址段对应ip掩码的第三数据串确定为该第二地址段对应的第二数据串。
44.可选的,所述第一生成模块,具体用于针对每一第二地址段,在该第二地址段对应ip掩码的第三数据串后补充预设数量个预设二进制数,得到该第二地址段对应的第二数据串。
45.可选的,所述第二生成模块,具体用于根据每一第二地址段以及该第二地址段对应的第二数据串,生成第二地址段与第二数据串间的对应关系,得到第一对应关系。
46.可选的,所述检索模块,具体用于以所述第一数据串包括的二进制数的数量为目标数量,获取所述第一数据串中前目标数量个二进制数作为第四数据串;
47.若所述第一对应关系中未包括所述第四数据串,则将所述目标数量减一,并返回执行所述获取所述第一数据串中前目标数量个二进制数作为第四数据串的步骤;
48.若所述第一对应关系中包括所述第四数据串,则将所述第一对应关系中与该第四数据串对应的第二地址段,确定为所述第一ip地址所在的第一地址段。
49.可选的,所述第二生成模块,具体用于针对每一第二地址段,利用预设哈希算法,计算该第二地址段对应的第二数据串的哈希值,得到该第二地址段对应的第一哈希值;
50.根据每一第二地址段以及该第二地址段对应的第一哈希值,生成第二地址段与第一哈希值间的对应关系,得到第一对应关系。
51.可选的,所述检索模块,具体用于以所述第一数据串包括的二进制数的数量为目标数量,利用预设哈希算法,计算所述第一数据串中前目标数量个二进制数的第二哈希值;
52.若所述第一对应关系中未包括所述第二哈希值,则将所述目标数量减一,并返回执行所述利用预设哈希算法,计算所述第一数据串中前目标数量个二进制数的第二哈希值的步骤;
53.若所述第一对应关系中包括所述第二哈希值,则将所述第一对应关系中与所述第一哈希值对应的第二地址段,确定为所述第一ip地址所在的第一地址段。
54.可选的,所述装置还包括:
55.确定模块,用于根据预先存储第二地址段与归属信息间的第二对应关系,以及所述第一ip地址所在的第一地址段,确定所述第一ip地址的归属信息,所述归属信息包括国
家、城市、运营商中的一个或多个。
56.本技术实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
57.存储器,用于存放计算机程序;
58.处理器,用于执行存储器上所存放的程序时,实现上述任一所述的地址段检索方法步骤。
59.本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的地址段检索方法步骤。
60.本技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的地址段检索方法。
61.本技术实施例有益效果:
62.本技术实施例提供的技术方案,可以将待检索的第一ip地址转换为二进制数,得到第一数据串,从而根据预先存储的第一对应关系,检索得到第一ip地址所在的第一地址段。相比于相关技术,由于第一对应关系是根据每一第二地址段与每一第二地址段对应的第二数据串生成的,也就是根据每一第二地址段与该第二地址段的ip掩码所对应的二进制数生成的,考虑到同一地址段的ip掩码是相同的,即同一地址段的ip掩码所对应的二进制数是相同的,因此,第一ip地址的第一数据串中ip掩码所对应的二进制数,与该第一ip地址所在第二地址段中ip掩码对应的二进制数是相同的,基于此,在根据第一数据串以及第一对应关系检索第一ip地址所在的第一地址段时,时间复杂度的最大值即为第一ip地址的二进制数的比特数,并且,当地址段的数量越少时,检索的时间复杂度越小,这有效的降低了地址段检索的时间复杂度,从而提高了地址段检索的效率。
63.当然,实施本技术的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
64.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
65.图1为本技术实施例提供的地址段检索方法的第一种流程示意图;
66.图2为本技术实施例提供的地址段检索方法的第二种流程示意图;
67.图3为本技术实施例提供的地址段检索方法的第三种流程示意图;
68.图4为本技术实施例提供的地址段检索方法的第四种流程示意图;
69.图5为本技术实施例提供的地址段检索方法的第五种流程示意图;
70.图6为本技术实施例提供的地址段检索装置的一种结构示意图;
71.图7为本技术实施例提供的电子设备的一种结构示意图。
具体实施方式
72.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员基于本技术所获得的所有其他实施例,都属于本技术保护的范围。
73.为了解决相关技术中的问题,本技术实施例还提供了一种地址段检索方法,如图1所示,图1为本技术实施例提供的地址段检索方法的第一种流程示意图。该方法可以应用于任一电子设备,在此,对该电子设备不作具体限定。图1所示的方法包括以下步骤。
74.步骤s101,获取第一ip地址。
75.步骤s102,将第一ip地址转换为二进制数,得到第一数据串。
76.步骤s103,根据预先存储的第一对应关系,检索与第一数据串匹配的地址段,得到第一ip地址所在的第一地址段,其中,第一对应关系是根据每一第二地址段与每一第二地址段对应的第二数据串生成的,每一第二地址段对应的第二数据串是根据该第二地址段的ip掩码所对应的二进制数生成的。
77.采用图1所示的方法,可以将待检索的第一ip地址转换为二进制数,得到第一数据串,从而根据预先存储的第一对应关系,检索得到第一ip地址所在的第一地址段。相比于相关技术,由于第一对应关系是根据每一第二地址段与每一第二地址段对应的第二数据串生成的,也就是根据每一第二地址段与该第二地址段的ip掩码所对应的二进制数生成的,考虑到同一地址段的ip掩码是相同的,即同一地址段的ip掩码所对应的二进制数是相同的,因此,第一ip地址的第一数据串中ip掩码所对应的二进制数,与该第一ip地址所在第二地址段中ip掩码对应的二进制数是相同的,基于此,在根据第一数据串以及第一对应关系检索第一ip地址所在的第一地址段时,时间复杂度的最大值即为第一ip地址的二进制数的比特数,并且,当地址段的数量越少时,检索的时间复杂度越小,这有效的降低了地址段检索的时间复杂度,从而提高了地址段检索的效率。
78.下面通过的具体的实施例,对本技术实施例进行说明。
79.针对上述步骤s101,即获取第一ip地址。
80.一个可选的实施例中,用户可以触发对某一ip地址所在地址段的检索操作。例如,在电子设备的显示界面中包括一检索栏,当用户在该检索栏中输入某一ip地址时,将触发对该ip地址的检索操作,此时,电子设备将获取到该用户输入的ip地址(记为第一ip地址)。电子设备可以确定该第一ip地址为待检索的ip地址。
81.在本技术实施例中,上述第一ip地址可以为网际协议版本4(internet protocol version 4,ipv4)地址,也可以为网际协议版本6(internet protocol version 6,ipv6)地址。在此,对上述第一ip地址不作具体限定。为便于理解,下面均以第一ip地址为ipv4地址为例进行说明,并不起任何限定作用。
82.针对上述步骤s102,即将第一ip地址转换为二进制数,得到第一数据串。
83.在本步骤中,电子设备在获取到上述第一ip地址后,可以将该ip地址由十进制数转换为二进制数,得到该第一ip地址的数据串(记为第一数据串)。
84.一个可选的实施例中,当上述第一ip地址为上述ipv4地址时,电子设备可以将第一ip地址转换为由0或1组成的32位二进制数,得到第一数据串。
85.例如,第一ip地址为1.2.2.0时,该第一ip地址的第一数据串表示为:00000001 00000010 00000010 00000000。
86.一个可选的实施例中,当上述第一ip地址为上述ipv6地址时,电子设备可以该第一ip地址转换为由0或1组成的128位二进制数,得到第一数据串。
87.在本技术实施例中,对上述第一ip地址的转换过程不作具体说明。
88.针对上述步骤s103,即根据预先存储的第一对应关系,检索与第一数据串匹配的地址段,得到第一ip地址所在的第一地址段,其中,第一对应关系是根据每一第二地址段与每一第二地址段对应的第二数据串生成的,每一第二地址段对应的第二数据串是根据该第二地址段的ip掩码所对应的二进制数生成的。
89.在本步骤中,电子设备可以根据预先划分的每一地址段(记为第二地址段),以及该第二地址段的ip掩码对应的数据串(记为第二数据串)生成第一对应关系。电子设备可以基于上述第一数据串,在第一对应关系中检索得到第一数据串所在的地址段(记为第一地址段)。关于上述第一对应关系的生成方式,以及第一地址段的检索方式可参见下文描述,在此不作赘述。
90.一个可选的实施例中,根据上述图1所示的方法,本技术实施例还提供了一种地址段检索方法。如图2所示,图2为本技术实施例提供的地址段检索方法的第二种流程示意图。该方法包括以下步骤。
91.步骤s201,获取多个第二地址段。
92.在本步骤中,根据ip地址的取值范围,可以将划分得到多个第二地址段。电子设备可以获取每一第二地址段。
93.为便于理解,以上述ip地址为ipv4地址为例进行说明。
94.上述ipv4地址的取值范围为0.0.0.0至255.255.255.255。该取值范围可以划分出多个地址段,例如,地址段1的取值范围为:0.0.0.0至0.0.0.255,地址段2的取值范围可以为:2.2.2.8至2.2.3.100等。
95.针对上述每一第二地址段,该第二地址段中每一ip地址对应的ip掩码相同。为便于理解,以上述地址段1和地址段2为例进行说明。
96.在地址段1中,每一ip地址所对应的二进制数的前24位均相同,即0000000000000000 00000000,可以表示为:0.0.0.0/24。
97.在地址段2中,每一ip地址所对应的二进制数的前16位均相同,即0000001000000010,可以表示为:2.2.2.8/16。
98.上述多个第二地址段所对应的取值范围均不相同,并且每一第二地址段所包括的ip地址的数量可以相同,也可以不同。在此,对上述第二地址段的数量以及每一第二地址段的取值范围不作具体限定。
99.步骤s202,针对每一第二地址段,将该第二地址段所对应的ip掩码转换为二进制数,得到第三数据串。
100.在本步骤中,针对每一第二地址段,电子设备可以将该第二地址段中的仍一ip地址转换为二进制数,得到该ip地址对应的数据串(记为第五数据串),并根据该第二地址段对应的ip掩码的位数,将第五数据串中前预设位数个二进制数确定为该第二数据段的ip掩码所对应的二进制数,得到数据串(记为第三数据串)。其中,预设位数为第二地址段对应的
ip掩码的位数。
101.为便于理解,仍以上述地址段1为例进行说明。电子设备可以将首个ip地址,即0.0.0.0/24转换为二进制数,得到第五数据串,该第五数据串表示为:00000000 00000000 00000000 00000000。根据地址段1的ip掩码的位数,即24,电子设备可以获取第五数据串中的前24位二进制数据,得到第三数据串,即00000000 00000000 00000000。
102.步骤s203,针对每一第二地址段,根据该第二地址段对应的ip掩码的第三数据串,生成该第二地址段对应的第二数据串。
103.一个可选的实施例中,上述步骤s203,针对每一第二地址段,根据该第二地址段对应的ip掩码的第三数据串,生成该第二地址段对应的第二数据串,具体可以表示为:
104.针对每一第二地址段,将该第二地址段对应ip掩码的第三数据串确定为该第二地址段对应的第二数据串。此时,每一第二地址段对应的第二数据串即为该第二地址段的ip掩码对应的第三数据串。
105.为便于理解,以某一第二地址段的ip掩码所对应的第三数据串为00000010 00000010 00000010为例进行说明,电子设备可以直接将该第三数据串为该第二地址段对应的第二数据串。即该第二地址段对应的第二数据串为:00000010 00000010 00000010。
106.另一个可选的实施例中,上述步骤s203,针对每一第二地址段,根据该第二地址段对应的ip掩码的第三数据串,生成该第二地址段对应的第二数据串,具体可以表示为:
107.针对每一第二地址段,在该第二地址段对应ip掩码的第三数据串后补充预设数量个预设二进制数,得到该第二地址段对应的第二数据串。
108.针对每一第二地址段,由于该第二地址段对应的第三数据串一定为该第二地址段中任一ip地址对应第五数据串的前预设位数个二进制数,因此,电子设备可以在该第二地址段的ip掩码对应的第三数据串后补充预设数量个预设进制数,得到该第二地址段对应的第二数据串。此时,每一第二地址段对应的第二数据串即为该第二地址段的ip掩码对应的第三数据串与预设数量个预设二进制数的组合。
109.在本技术实施例中,上述预设二进制数可以为0,也可以为1,在此,对上述预设二进制数不作具体限定。
110.一个可选的实施例中,由于上述第二地址段中的任一ip地址转换为二进制数后的位数是固定的,如ipv4地址所对应的位数为32位,ipv6所对应的位数为128位,因此,上述预设数量可以为第二地址段中任一ip地址对应二进制数的位数与上述预设位数(即该第二地址段的ip掩码所对应的位数)的差值。
111.为便于理解,仍以上述第三数据串为00000010 00000010 00000010的第二地址段,以及预设二进制数为0为例进行说明。
112.由于ipv4地址所对应的位数为32位,因此,上述预设数量为8=32-24,即电子设备可以在该第三数据串后补充8个0,得到该第二地址段对应的第二数据串。该第二数据串表示为:00000010 00000010 00000010 00000000。
113.在本技术实施例中,对上述第二数据串的生成方式不作具体限定。为便于理解,下面仅以第二数据串为上述第三数据串为例进行说明,并不起任何限定作用。
114.通过每一第二地址段对应的第三数据串,电子设备可以生成每一第二地址段对应的第二数据串,即与每一第二地址段的ip掩码有关的第二数据串,保证了后期基于该第二
数据串生成的第一对应关系与第二地址段的ip掩码的关联性,从而便于后期ip地址所在地址段的检索,提高检索效率。
115.步骤s204,基于每一第二地址段以及每一第二地址段对应的第二数据串,生成第一对应关系。
116.上述第一关系的生成方式可参见下文描述,在此不作赘述。
117.通过上述步骤s201-步骤s204,电子设备可以预先根据每一第二地址段以及每一第二地址段对应的第二数据串,生成第一对应关系。
118.步骤s205,获取第一ip地址。
119.步骤s206,将第一ip地址转换为二进制数,得到第一数据串。
120.步骤s207,根据预先存储的第一对应关系,检索与第一数据串匹配的地址段,得到第一ip地址所在的第一地址段,其中,第一对应关系是根据每一第二地址段与每一第二地址段对应的第二数据串生成的,每一第二地址段对应的第二数据串是根据该第二地址段的ip掩码所对应的二进制数生成的。
121.上述步骤s205-步骤s207与上述步骤s101-步骤s103相同。
122.一个可选的实施例中,根据图2所示的方法,本技术实施例还提供了一种地址段检索方法的。如图3所示,图3为本技术实施例提供的地址段检索方法的第三种流程示意图。该方法包括以下步骤。
123.步骤s301,获取多个第二地址段。
124.步骤s302,针对每一第二地址段,将该第二地址段所对应的ip掩码转换为二进制数,得到第三数据串。
125.步骤s303,针对每一第二地址段,根据该第二地址段对应的ip掩码的第三数据串,生成该第二地址段对应的第二数据串。
126.上述步骤s301-步骤s303与上述步骤s201-步骤s203相同。
127.步骤s304,根据每一第二地址段以及该第二地址段对应的第二数据串,生成第二地址段与第二数据串间的对应关系,得到第一对应关系。
128.在本步骤中,电子设备可以根据每一第二地址段与每一第二数据串间的对应关系,生成第二地址段与第二数据串间的对应关系,得到第一对应关系。具体如表1所示。
129.表1
130.地址段数据串地址段1数据串1地址段2数据串2地址段3数据串3
131.在表1所示的对应关系中,地址段1对应的数据串为数据串1,地址段2对应的数据串为数据串2,地址段3对应的数据串为数据串3。
132.通过上述步骤s204,电子设备可以根据每一第二地址段以及每一第二地址段生成第一对应关系,使得生成的第一对应关系中保留了第二地址段与该第二地址段的ip掩码的关联性,从而便于后期的ip地址所在地址段的检索过程。
133.步骤s305,获取第一ip地址。
134.步骤s306,将第一ip地址转换为二进制数,得到第一数据串。
135.上述步骤s305-步骤s306与上述步骤s205-步骤s206相同。
136.步骤s307,以第一数据串包括的二进制数的数量为目标数量,获取第一数据串中前目标数量个二进制数作为第四数据串。
137.为便于理解,以第一数据串为00000010 00000010 00000010 00001100为例进行说明。
138.第一数据串包括的二进制数的数量(即二进制数据的位数)为32,电子设备可以获取前32位二进制数作为第四数据串,此时,该第四数据串为:00000010 00000010 00000010 00001100。
139.步骤s308,若第一对应关系中未包括第四数据串,则将目标数量减一,并返回执行获取第一数据串中前目标数量个二进制数作为第四数据串的步骤。
140.在本步骤中,电子设备在获取到上述第四数据串后,可以检索上述第一对应关系中是否包括该第四数据串。若第一对应关系中未包括该第四数据串,则电子设备可以确定该第四数据串并不是第一对应关系所包括的各第二地址段的ip掩码所对应的二进制数,也就是该第四数据串并不是第一ip地址的ip掩码所对应的二进制数。此时,电子设备可以将上述目标数量减一,并返回执行上述步骤s307中的获取第一数据串中前目标数量个二进制数作为第四数据串的步骤,也就是根据减一后的目标数量重新获取第四数据串。
141.仍以上述目标数量为32,第一数据串为00000010 00000010 00000010 00001100为例,当电子设备确定第一对应关系中未包括上述第四数据串后,目标数量将更新为31,此时,重新获取到的第四数据串为00000010 00000010 00000010 0000110。
142.步骤s309,若第一对应关系中包括第四数据串,则将第一对应关系中与该第四数据串对应的第二地址段,确定为第一ip地址所在的第一地址段。
143.在本步骤中,若上述第一对应关系中包括上述第四数据串,则电子设备可以确定第四数据串即为某一第二地址段的ip掩码所对应的二进制数,也就是第一ip地址的ip掩码与第一对应关系所包括的第四数据串所对应的第二地址段的ip掩码相同。此时,电子设备可以将第一对应关系中与该第四数据串对应的第二地址段确定为第一ip地址所在的第一地址段。
144.为便于理解,结合上述表1为例进行说明,现假设表1所示的数据串2与上述第四数据串相同时,电子设备可以将表1所示的地址段2确定为上述第一ip地址所在的第一地址段。
145.在本技术实施例中,上述步骤s308是在第一对应关系未包括第四数据串时执行的,步骤s309是在第一对应关系包括第四数据串时执行的,在此,对上述步骤s308与步骤s309的执行不作具体限定。
146.上述步骤s307-步骤s309是对上述步骤s207的细化。
147.在上述步骤s307-步骤s309中,上述目标数量是按照从大到小的顺序进行变换的,除此以外,上述目标数量也可以按照从小到大的顺序进行变换,当上述目标数量按照从小到大的顺序进行变换,上述步骤s308中的减一操作将变更为加一操作。在此,对目标数量按照从小到大的顺序进行变换的检索过程不作具体说明。
148.在上述步骤s307-步骤s309中,上述目标数量的取值范围为:1至第一数据串所包括的二进制数的数量。如,当第一数据串为32位时,上述目标数据串的取值范围为[1,32]。
此时,上述检索过程的时间复杂度最大为32。当每一第一地址段的ip掩码所对应的二进制数的位数越高时,检索过程所对应的时间复杂度越小,地址段检索效率越高。
[0149]
另外,考虑到实际地址段划分过程中,并不会将某一ip地址作为一个第一段,因此,上述目标数量的取值范围可以为:[1,x],其中,x为第一数据串所包括的二进制数的数量-1。
[0150]
通过上述步骤s307-步骤s309,电子设备可以根据第一对应关系以及第一数据串,准确的确定出第一ip地址所在的第一地址段,在保证确定出的第一地址段的准确性的同时,降低了地址段检索过程的时间复杂的,提高了地址段检索的效率。
[0151]
一个可选的实施例中,根据上述图2所示的方法,本技术实施例还提供了一种地址段检索方法。如图4所示,图4为本技术实施例提供的地址段检索方法的第四种流程示意图。该方法包括以下步骤。
[0152]
步骤s401,获取多个第二地址段。
[0153]
步骤s402,针对每一第二地址段,将该第二地址段所对应的ip掩码转换为二进制数,得到第三数据串。
[0154]
步骤s403,针对每一第二地址段,根据该第二地址段对应的ip掩码的第三数据串,生成该第二地址段对应的第二数据串。
[0155]
上述步骤s401-步骤s403与上述步骤s201-步骤s203相同。
[0156]
步骤s404,针对每一第二地址段,利用预设哈希算法,计算该第二地址段对应的第二数据串的哈希值,得到该第二地址段对应的第一哈希值。
[0157]
在本技术实施例中,上述预设哈希算法包括但不限于安全散列算法1(secure hash algorithm 1,sha-1)算法和信息摘要算法(message-digest algorithm,md5)算法。在此,对上述预设哈希算法不作具体限定。关于上述第一哈希值的计算方式可参照相关技术中的哈希值计算方式,在此不作具体说明。
[0158]
步骤s405,根据每一第二地址段以及该第二地址段对应的第一哈希值,生成第二地址段与第一哈希值间的对应关系,得到第一对应关系。
[0159]
在本步骤中,电子设备在计算得到每一第二地址段对应的第一哈希值后,可以生成每一第二地址段与每一第一哈希值间的对应关系,得到第一对应关系。具体如表2所示。
[0160]
表2
[0161]
地址段哈希值地址段1哈希值1地址段2哈希值2地址段3哈希值3
[0162]
在表2所示的对应关系中,地址段1对应的哈希值为哈希值1,地址段2对应的哈希值为哈希值2,地址段3对应的哈希值为哈希值3。
[0163]
通过上述步骤s404-步骤s405,电子设备可以根据每一第二地址段以及每一第二地址段生成第一对应关系,使得生成的第一对应关系中保留了第二地址段与该第二地址段的ip掩码的关联性,从而便于后期的ip地址所在地址段的检索过程。
[0164]
另外,当第二数据串不同时,计算得到的第一哈希值也是不同的,相比于由多个二进制数组成的第二数据串,第一哈希值的表示方式更为简单,并与后期在第一对应关系中
检索第二哈希值,从而缩短哈希值的检索时长,提高地址段检索的效率。
[0165]
上述步骤s404-步骤s405是对上述步骤s204的细化。
[0166]
步骤s406,获取第一ip地址。
[0167]
步骤s407,将第一ip地址转换为二进制数,得到第一数据串。
[0168]
上述步骤s406-步骤s407与上述步骤s205-步骤s206相同。
[0169]
步骤s408,以第一数据串包括的二进制数的数量为目标数量,利用预设哈希算法,计算第一数据串中前目标数量个二进制数的第二哈希值。
[0170]
上述第一数据串中前目标数量个二进制数的第二哈希值的计算方式可参照上述第一哈希值的计算方式,在此不作具体说明。
[0171]
步骤s409,若第一对应关系中未包括第二哈希值,则将目标数量减一,并返回执行利用预设哈希算法,计算第一数据串中前目标数量个二进制数的第二哈希值的步骤。
[0172]
在本步骤中,电子设备在获取到上述第二哈希值后,可以检索上述第一对应关系中是否包括该第二哈希值。若第一对应关系中未包括该第二哈希值,则电子设备可以确定该第二哈希值并不是第一对应关系所包括的各第二地址段的ip掩码所对应二进制数的哈希值,也就是该第二哈希值并不是该第一ip地址的ip掩码所对应的二进制数的哈希值。此时,电子设备可以将上述,目标数量减一,并返回执行上述步骤s408中的利用预设哈希算法,计算第一数据串中前目标数量个二进制数的第二哈希值的步骤。也就是根据减一后的目标数量重新获取第二哈希值。
[0173]
步骤s410,若第一对应关系中包括第二哈希值,则将第一对应关系中与第一哈希值对应的第二地址段,确定为第一ip地址所在的第一地址段。
[0174]
在本步骤中,若上述第一对应关系中包括上述第二哈希值,则电子设备可以确定该第二哈希值即为某一第二地址段的ip掩码所对应的二进制数的哈希值,也就是第一ip地址的ip掩码与第一对应关系所包括的第二哈希值所对应的第二地址段的ip掩码相同。此时,电子设备可以将第一对应关系中与该第二哈希值对应的第二地址段确定为第一ip地址所在的第一地址段。
[0175]
上述步骤s408-步骤s410是对上述步骤s207的细化。
[0176]
在上述步骤s408-步骤s410中,上述目标数量是按照从大到小的顺序进行变换的,除此以外,上述目标数量也可以按照从小到大的顺序进行变换,当上述目标数量按照从小到大的顺序进行变换,上述步骤s409中的减一操作将变更为加一操作。在此,对目标数量按照从小到大的顺序进行变换的检索过程不作具体说明。
[0177]
在上述步骤s408-步骤s410中,上述目标数量的取值范围为:1至第一数据串所包括的二进制数的数量。如,当第一数据串为32位时,上述目标数据串的取值范围为[1,32]。此时,上述检索过程的时间复杂度最大为32。当每一第一地址段的ip掩码所对应的二进制数的位数越高时,检索过程所对应的时间复杂度越小,地址段检索效率越高。
[0178]
另外,考虑到实际地址段划分过程中,并不会将某一ip地址作为一个第一段,因此,上述目标数量的取值范围可以为:[1,x],其中,x为第一数据串所包括的二进制数的数量-1。
[0179]
通过上述步骤s408-步骤s410,电子设备可以根据第一对应关系以及第二哈希值,准确的确定出第一ip地址所在的第一地址段,在保证确定出的第一地址段的准确性的同
时,降低了地址段检索过程的时间复杂的,提高了地址段检索的效率。
[0180]
在上述图3和图4所示的实施例中,仅以第二数据串为上述第三数据串为例进行说明。当上述第二数据串为上述第三数据串与预设数量个预设二进制数的组合时,电子设备在执行上述步骤s307或步骤s408时,均需在第一数据串的前预设数量个二进制数后补充预设二进制数,得到的数据串记为第六数据串。也就是在执行上述步骤s307时,电子设备在从第一数据串中获取前目标数量个二进制数后,在该二进制数后补充预设二进制数,或者在执行上述步骤s408时,电子设备从第一数据串中获取前目标数量个二进制数,在该二进制数后补充预设二进制数,并利用预设哈希算法,计算补充预设二进制数后的数据串的第二哈希值。该第六数据串包括的二进制数的数量与上述第二数据串包括的二进制数的数量相同。在此,对第二数据串为上述第三数据串与预设数量个预设二进制数的组合时,ip地址的检索过程不作具体说明。
[0181]
一个可选的实施例中,上述第一对应关系中除了包括上述第二地址段和第二数据串/第一哈希值以外,还可以包括每一地址段的ip掩码对应的二进制数的位数。
[0182]
为便于理解,仍以上述表1所示的对应关系为例,包括ip掩码对应的二进制数的第一对应关系可以如表3所示。
[0183]
表3
[0184]
地址段数据串位数地址段1数据串130地址段2数据串225地址段3数据串330
[0185]
在表2对应的对应关系中,地址段1的ip掩码对应的二进制数的位数为30,地址段2的ip掩码对应的二进制数的位数为25,地址段1的ip掩码对应的二进制数的位数为25,地址段3的ip掩码对应的二进制数的位数为30。
[0186]
在检索第一ip地址所在的第一地址段时,电子设备可以根据第一对应关系中包括每一地址段对应的位数,按照位数从大到小或者位数从小到大的顺序依次,将每一位数确定为上述目标数量,从而基于该目标数量进行地址段检索。
[0187]
通过将上述第一对应关系中每一位数确定为上述目标数量,在保证确定出的目标数量与每一地址段的ip掩码对应的二进制数的位数的同时,避免了将第一对应关系未包括的ip掩码对应的二进制数的位数确定为目标数量,从而减少地址段检索的时间复杂度,提高地址段检索的效率。
[0188]
一个可选地实施例中,根据上述图1所示的方法,本技术实施例还提供了一种地址段检索方法。如图5所示,图5为本技术实施例提供的地址段检索方法的第五种流程示意图。该方法包括步骤。
[0189]
步骤s501,获取第一ip地址。
[0190]
步骤s502,将第一ip地址转换为二进制数,得到第一数据串。
[0191]
步骤s503,根据预先存储的第一对应关系,检索与第一数据串匹配的地址段,得到第一ip地址所在的第一地址段,其中,第一对应关系是根据每一第二地址段与每一第二地址段对应的第二数据串生成的,每一第二地址段对应的第二数据串是根据该第二地址段的ip掩码所对应的二进制数生成的。
[0192]
上述步骤s501-步骤s503与上述步骤s101-步骤s103相同。
[0193]
步骤s504,根据预先存储第二地址段与归属信息间的第二对应关系,以及第一ip地址所在的第一地址段,确定第一ip地址的归属信息,归属信息包括国家、城市、运营商中的一个或多个。
[0194]
在本技术实施例中,电子设备在生成上述第一对应关系时,还可以获取每一第二地址段对应的归属信息,从而生成每一第二地址段与归属信息间的第二对应关系。
[0195]
为便于理解,仍以上述表1为例进行说明,包括归属信息的第二对应关系可以如表4所示。
[0196]
表4
[0197]
地址段数据串归属信息地址段1数据串1信息1地址段2数据串2信息2地址段3数据串3信息3
[0198]
在表4所示的对应关系中,地址段1所对应的归属信息为信息1,地址段2所对应的归属信息为信息2,地址段3所对应的归属信息为信息3。
[0199]
电子设备在确定上述第一ip地址所在的第一地址段后,可以根据上述第二对应关系,确定该第一地址段所对应的归属信息,得到第一ip地址的归属信息。
[0200]
以上述第一ip地址所在的第一地址段为表4所示的地址段2为例进行说明。根据表4所示的对应关系,电子设备可以确定该第一ip地址的归属信息为信息2。
[0201]
上述归属信息可以包括国家、城市、运营商中的一个或多个。在此,上述归属信息不作限定。
[0202]
在本技术实施例中,通过上述第二对应关系,电子设备可以准确确定出第一ip地址的归属信息,在保证确定出的归属信息的准确性的同时,便于基于该归属信息进行相应的操作,如服务器分配等。
[0203]
基于同一种发明构思,根据上述本技术实施例提供的地址段检索方法,本技术实施例还提供了一种地址段检索装置。如图6所示,图6为本技术实施例提供的地址段检索装置的一种结构示意图。该装置包括以下模块。
[0204]
第一获取模块601,用于获取第一ip地址;
[0205]
第一转换模块602,用于将第一ip地址转换为二进制数,得到第一数据串;
[0206]
检索模块603,用于根据预先存储的第一对应关系,检索与第一数据串匹配的地址段,得到第一ip地址所在的第一地址段,其中,第一对应关系是根据每一第二地址段与每一第二地址段对应的第二数据串生成的,每一第二地址段对应的第二数据串是根据该第二地址段的ip掩码所对应的二进制数生成的。
[0207]
可选的,上述地址段检索装置还可以包括:
[0208]
第二获取模块,用于获取多个第二地址段;
[0209]
第二转换模块,用于针对每一第二地址段,将该第二地址段所对应的ip掩码转换为二进制数,得到第三数据串;
[0210]
第一生成模块,用于针对每一第二地址段,根据该第二地址段对应的ip掩码的第三数据串,生成该第二地址段对应的第二数据串;
[0211]
第二生成模块,用于基于每一第二地址段以及每一第二地址段对应的第二数据串,生成第一对应关系。
[0212]
可选的,上述第一生成模块,具体可以用于针对每一第二地址段,将该第二地址段对应ip掩码的第三数据串确定为该第二地址段对应的第二数据串。
[0213]
可选的,上述第一生成模块,具体可以用于针对每一第二地址段,在该第二地址段对应ip掩码的第三数据串后补充预设数量个预设二进制数,得到该第二地址段对应的第二数据串。
[0214]
可选的,上述第二生成模块,具体可以用于根据每一第二地址段以及该第二地址段对应的第二数据串,生成第二地址段与第二数据串间的对应关系,得到第一对应关系。
[0215]
可选的,上述检索模块603,具体可以用于以第一数据串包括的二进制数的数量为目标数量,获取第一数据串中前目标数量个二进制数作为第四数据串;
[0216]
若第一对应关系中未包括第四数据串,则将目标数量减一,并返回执行获取第一数据串中前目标数量个二进制数作为第四数据串的步骤;
[0217]
若第一对应关系中包括第四数据串,则将第一对应关系中与该第四数据串对应的第二地址段,确定为第一ip地址所在的第一地址段。
[0218]
可选的,上述第二生成模块,具体可以用于针对每一第二地址段,利用预设哈希算法,计算该第二地址段对应的第二数据串的哈希值,得到该第二地址段对应的第一哈希值;
[0219]
根据每一第二地址段以及该第二地址段对应的第一哈希值,生成第二地址段与第一哈希值间的对应关系,得到第一对应关系。
[0220]
可选的,上述检索模块603,具体可以用于以第一数据串包括的二进制数的数量为目标数量,利用预设哈希算法,计算第一数据串中前目标数量个二进制数的第二哈希值;
[0221]
若第一对应关系中未包括第二哈希值,则将目标数量减一,并返回执行利用预设哈希算法,计算第一数据串中前目标数量个二进制数的第二哈希值的步骤;
[0222]
若第一对应关系中包括第二哈希值,则将第一对应关系中与第一哈希值对应的第二地址段,确定为第一ip地址所在的第一地址段。
[0223]
可选的,上述地址段检索装置还可以包括:
[0224]
确定模块,用于根据预先存储第二地址段与归属信息间的第二对应关系,以及第一ip地址所在的第一地址段,确定第一ip地址的归属信息,归属信息包括国家、城市、运营商中的一个或多个。
[0225]
通过本技术实施例提供的装置,可以将待检索的第一ip地址转换为二进制数,得到第一数据串,从而根据预先存储的第一对应关系,检索得到第一ip地址所在的第一地址段。相比于相关技术,由于第一对应关系是根据每一第二地址段与每一第二地址段对应的第二数据串生成的,也就是根据每一第二地址段与该第二地址段的ip掩码所对应的二进制数生成的,考虑到同一地址段的ip掩码是相同的,即同一地址段的ip掩码所对应的二进制数是相同的,因此,第一ip地址的第一数据串中ip掩码所对应的二进制数,与该第一ip地址所在第二地址段中ip掩码对应的二进制数是相同的,基于此,在根据第一数据串以及第一对应关系检索第一ip地址所在的第一地址段时,时间复杂度的最大值即为第一ip地址的二进制数的比特数,并且,当地址段的数量越少时,检索的时间复杂度越小,这有效的降低了地址段检索的时间复杂度,从而提高了地址段检索的效率。
[0226]
基于同一种发明构思,根据上述本技术实施例提供的地址段检索方法,本技术实施例还提供了一种电子设备,如图7所示,包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信,
[0227]
存储器703,用于存放计算机程序;
[0228]
处理器701,用于执行存储器703上所存放的程序时,实现如下步骤:
[0229]
获取第一ip地址;
[0230]
将第一ip地址转换为二进制数,得到第一数据串;
[0231]
根据预先存储的第一对应关系,检索与第一数据串匹配的地址段,得到第一ip地址所在的第一地址段,其中,第一对应关系是根据每一第二地址段与每一第二地址段对应的第二数据串生成的,每一第二地址段对应的第二数据串是根据该第二地址段的ip掩码所对应的二进制数生成的。
[0232]
通过本技术实施例提供的电子设备,可以将待检索的第一ip地址转换为二进制数,得到第一数据串,从而根据预先存储的第一对应关系,检索得到第一ip地址所在的第一地址段。相比于相关技术,由于第一对应关系是根据每一第二地址段与每一第二地址段对应的第二数据串生成的,也就是根据每一第二地址段与该第二地址段的ip掩码所对应的二进制数生成的,考虑到同一地址段的ip掩码是相同的,即同一地址段的ip掩码所对应的二进制数是相同的,因此,第一ip地址的第一数据串中ip掩码所对应的二进制数,与该第一ip地址所在第二地址段中ip掩码对应的二进制数是相同的,基于此,在根据第一数据串以及第一对应关系检索第一ip地址所在的第一地址段时,时间复杂度的最大值即为第一ip地址的二进制数的比特数,并且,当地址段的数量越少时,检索的时间复杂度越小,这有效的降低了地址段检索的时间复杂度,从而提高了地址段检索的效率。
[0233]
上述电子设备提到的通信总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0234]
通信接口用于上述电子设备与其他设备之间的通信。
[0235]
存储器可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0236]
上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0237]
基于同一种发明构思,根据上述本技术实施例提供的地址段检索方法,本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一地址段检索方法的步骤。
[0238]
基于同一种发明构思,根据上述本技术实施例提供的地址段检索方法,本技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行
上述实施例中任一地址段检索方法。
[0239]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
[0240]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0241]
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质及计算机程序产品等实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0242]
以上所述仅为本技术的较佳实施例,并非用于限定本技术的保护范围。凡在本技术的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本技术的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献