掌桥专利:专业的专利平台
掌桥专利
首页

IP地址段冲突检测方法及装置、电子设备

文献发布时间:2023-06-19 19:30:30


IP地址段冲突检测方法及装置、电子设备

技术领域

本发明涉及计算机网络领域,具体而言,涉及一种IP地址段冲突检测方法及装置、电子设备。

背景技术

对于一些业务场景,需要对系统的IP地址段配置导入与导出功能,在导入的时候,需要对IP地址以及IP地址段之间的冲突进行检测,如果存在冲突的,则需要对冲突的IP地址以及IP地址段进行剔除处理。

相关技术中,通过在交换机或者硬件层面借助MAC地址,ARP记录等方式进行实体网络的IP地址冲突检测,没有对某一包含大量IP地址的IP地址段之间是否冲突进行检测方法,且当前检测IP地址之间的冲突方法,不仅耗费时间多,而且检测效率低,影响用户体验。

针对上述的问题,目前尚未提出有效的解决方案。

发明内容

本发明实施例提供了一种IP地址段冲突检测方法及装置、电子设备,以至少解决相关技术中仅对单一IP地址之间的冲突情况进行检测,未对包含大量IP地址的IP地址段进行有效检测的技术问题。

根据本发明实施例的一个方面,提供了一种IP地址段冲突检测方法,包括:接收关联目标业务场景的N个IP地址段,其中,每个IP地址段至少包括:起始IP地址和终止IP地址,N为大于等于1的正整数;对所述N个IP地址段进行数值转化,得到与每个IP地址段对应的数值范围;比较所有所述IP地址段对应的数值范围,得到比较结果;基于所述比较结果,确认所述IP地址段之间是否存在冲突。

可选地,对所述N个IP地址段进行数值转化,得到与每个IP地址段对应的数值范围的步骤,包括:在IP地址段所包含的IP地址的地址类型为第一类地址的情况下,以分段点位为拆分基准,将所述IP地址段的所述起始IP地址和所述终止IP地址拆分为四段单数,得到起始单数集合和终止单数集合,其中,每个IP地址段包含M个IP地址,M为大于等于2的正整数;将所述起始单数集合代入预设计算公式,得到与所述起始IP地址对应的第一起始数值;将所述终止单数集合代入预设计算公式,得到与所述终止IP地址对应的第一终止数值;基于所述第一起始数值与所述第一终止数值,确定与所述IP地址段对应的所述数值范围。

可选地,对所述N个IP地址段进行数值转化,得到与每个IP地址段对应的数值范围的步骤,包括:在IP地址段所包含的IP地址的地址类型为第二类地址的情况下,以分段点位为拆分基准,将所述IP地址段的所述起始IP地址和所述终止IP地址拆分为四段单数,得到起始单数集合和终止单数集合;分别将所述起始单数集合和所述终止单数集合中的各个地址单数进行数值进制转换,得到第二起始数值和第二终止数值;基于所述第二起始数值与所述第二终止数值,确定与所述IP地址段对应的所述数值范围。

可选地,分别将所述起始单数集合和所述终止单数集合中的各个地址单数进行数值进制转换,得到第二起始数值和第二终止数值的步骤,包括:将所述起始单数集合中十六进制的地址单数转化为二进制的地址单数;按照所述地址单数的顺序对四个所述二进制的地址单数进行拼接,得到二进制数值串;在指定幂次下,对所述二进制数值串进行累加求和处理,得到所述第二起始数值;将所述终止单数集合中十六进制的地址单数转化为二进制的地址单数;按照所述地址单数的顺序对四个所述二进制的地址单数进行拼接,得到二进制数值串;在指定幂次下,对所述二进制数值串进行累加求和处理,得到所述第二终止数值。

可选地,比较所述IP地址段对应的数值范围,得到比较结果的步骤,包括:将所述IP地址段对应的数值范围内每个数值都赋予所属IP地址段的段标签;将每两个所述IP地址段对应的数值范围放入目标数组;对所述目标数组中的所有数值进行排序,得到排序结果;比较所述排序结果中每个数值数值范围,得到比较结果。

可选地,基于所述比较结果,确认所述IP地址段之间是否存在冲突的步骤,包括:基于所述比较结果,判断所述目标数组中连续两个数值对应的所述段标签是否相同;在所述目标数组中连续两个数值对应的所述段标签相同的情况下,确认所述段标签映射的目标IP地址段不存在冲突。

可选地,在判断所述目标数组中连续两个数值对应的所述段标签是否相同之后,还包括:在所述目标数组中连续两个数值对应的所述段标签不相同的情况下,查询与所述连续两个数值中前一数值对应的段标签一以及与后一数值对应的段标签二;确认所述段标签一所映射的IP地址段与所述段标签二所映射的IP地址段之间存在冲突;将所述段标签一所映射的IP地址段与所述段标签二所映射的IP地址段记录至目标冲突地址段集合中。

可选地,IP地址段冲突检测方法还包括:在所述目标数组中存在多个相同数值的情况下,查询与所述多个相同数值对应的所有段标签;将所述相同数值对应的所有段标签都记录至所述目标冲突地址段集合中。

根据本发明实施例的另一方面,还提供了一种IP地址段冲突检测装置,包括:接收单元,用于接收关联目标业务场景的N个IP地址段,其中,每个IP地址段至少包括:起始IP地址和终止IP地址,N为大于等于1的正整数;转化单元,用于对所述N个IP地址段进行数值转化,得到与每个IP地址段对应的数值范围;比较单元,用于比较所有所述IP地址段对应的数值范围,得到比较结果;确认单元,用于基于所述比较结果,确认所述IP地址段之间是否存在冲突。

可选地,所述转化单元包括:第一拆分模块,用于在IP地址段所包含的IP地址的地址类型为第一类地址的情况下,以分段点位为拆分基准,将所述IP地址段的所述起始IP地址和所述终止IP地址拆分为四段单数,得到起始单数集合和终止单数集合,其中,每个IP地址段包含M个IP地址,M为大于等于2的正整数;第一代入模块,用于将所述起始单数集合代入预设计算公式,得到与所述起始IP地址对应的第一起始数值;第二代入模块,将所述终止单数集合代入预设计算公式,得到与所述终止IP地址对应的第一终止数值;第一确定模块,用于基于所述第一起始数值与所述第一终止数值,确定与所述IP地址段对应的所述数值范围。

可选地,所述转化单元还包括:第二拆分模块,用于在IP地址段所包含的IP地址的地址类型为第二类地址的情况下,以分段点位为拆分基准,将所述IP地址段的所述起始IP地址和所述终止IP地址拆分为四段单数,得到起始单数集合和终止单数集合;第一转换模块,用于分别将所述起始单数集合和所述终止单数集合中的各个地址单数进行数值进制转换,得到第二起始数值和第二终止数值;第二确定模块,用于基于所述第二起始数值与所述第二终止数值,确定与所述IP地址段对应的所述数值范围。

可选地,所述第一转换模块包括:第一处理子模块,用于将所述起始单数集合中十六进制的地址单数转化为二进制的地址单数;按照所述地址单数的顺序对四个所述二进制的地址单数进行拼接,得到二进制数值串;在指定幂次下,对所述二进制数值串进行累加求和处理,得到所述第二起始数值;第二处理子模块,用于将所述终止单数集合中十六进制的地址单数转化为二进制的地址单数;按照所述地址单数的顺序对四个所述二进制的地址单数进行拼接,得到二进制数值串;在指定幂次下,对所述二进制数值串进行累加求和处理,得到所述第二终止数值。

可选地,所述比较单元包括:第一赋予模块,用于将所述IP地址段对应的数值范围内每个数值都赋予所属IP地址段的段标签;第一放入模块,用于将每两个所述IP地址段对应的数值范围放入目标数组;第一排序模块,用于对所述目标数组中的所有数值进行排序,得到排序结果;第一比较模块,用于比较所述排序结果中每个数值数值范围,得到比较结果。

可选地,所述确认单元包括:第一判断模块,用于基于所述比较结果,判断所述目标数组中连续两个数值对应的所述段标签是否相同;第一确认模块,用于在所述目标数组中连续两个数值对应的所述段标签相同的情况下,确认所述段标签映射的目标IP地址段不存在冲突。

可选地,所述确认单元还包括:第一查询模块,用于在所述目标数组中连续两个数值对应的所述段标签不相同的情况下,查询与所述连续两个数值中前一数值对应的段标签一以及与后一数值对应的段标签二;第二确认模块,用于确认所述段标签一所映射的IP地址段与所述段标签二所映射的IP地址段之间存在冲突;第一记录模块,用于将所述段标签一所映射的IP地址段与所述段标签二所映射的IP地址段记录至目标冲突地址段集合中。

可选地,所述IP地址段冲突检测装置还包括:第二查询模块,用于在所述目标数组中存在多个相同数值的情况下,查询与所述多个相同数值对应的所有段标签;第二记录模块,用于将所述相同数值对应的所有段标签都记录至所述目标冲突地址段集合中。

根据本发明实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项IP地址段冲突检测方法。

本公开中,采用以下步骤:接收关联目标业务场景的N个IP地址段,其中,每个IP地址段至少包括:起始IP地址和终止IP地址,N为大于等于1的正整数;对N个IP地址段进行数值转化,得到与每个IP地址段对应的数值范围;比较所有IP地址段对应的数值范围,得到比较结果;基于比较结果,确认IP地址段之间是否存在冲突。

本公开中,基于IP地址段中的起始IP地址和终止IP地址,将IP地址段之间的冲突转化为具体数值,通过数值比较对大量IP地址段进行冲突检测,进而解决了相关技术中仅对单一IP地址之间的冲突情况进行检测,未对包含大量IP地址的IP地址段进行有效检测的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种可选的IP地址段冲突检测方法的流程图;

图2是根据本发明实施例的一种可选的IP地址段数值转化的示意图;

图3是根据本发明实施例的一种可选的IP地址段冲突检测装置的示意图;

图4是根据本发明实施例的一种IP地址段冲突检测方法的电子设备(或移动设备)的硬件结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

为便于本领域技术人员理解本发明,下面对本发明各实施例中涉及的部分术语或者名词做出解释:

互联网协议地址,Internet Protocol Address,简称IP地址。

媒体存取控制位址,Media Access Control Address,简称MAC地址,也称为局域网地址,以太网地址或物理地址,是用来确认网络设备位置的位址。

基于有线电视同轴电缆网使用以太网协议的接入技术,Ethernet Over Cable,简称EOC,采用特定的介质转换技术(主要包括阻抗变换、平衡/不平衡变换等),将符合特定系列标准的数据信号通过入户同轴电缆传输。

光网络单元,Optical Network Unit,简称OUN,分为有源光网络单元和无源光网络单元。

地址解析协议,Address Resolution Protocol,简称ARP,根据IP地址获取物理地址的一个TCP/IP协议,ARP表,用于缓存设备的IP地址与MAC地址的对应关系。

以太网无源光网络,Ethernet Passive Optical Network,简称EPON,采用点到多点结构、无源光纤传输,在以太网之上提供多种业务。

光线路终端,optical line terminal,简称OLT,用于连接光纤干线的终端设备。

子网掩码,又叫网络掩码、地址掩码、子网络遮罩,用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。

相关技术中,在进行IP地址冲突检测时,接入层EOC/二层交换机设备的数据通过ONU透传至汇聚层EPON-OLT设备,因此在EPON-OLT设备的ARP表中会存在EOC/二层交换机设备的IP地址与MAC映射关系,根据设备的ARP表特征,可以通过定期采集某个接入层网络下所有EPON-OLT设备上的ARP表中动态学习的IP-MAC信息,来检测IP-MAC映射信息是否有过MAC地址更新来确定该IP地址是否被配置到了多个设备上。通过统计某个有冲突的IP-MAC映射的不同MAC地址数量,便可以得到该接入层网络中有多少台接入层设备具有相同的IP地址,通过在交换机或者硬件层面借助MAC地址,APR记录的方式进行冲突检测的方法并不适用于大量IP地址段的应用场景。

本发明可应用于各种关于IP地址之间以及IP地址段之间的冲突检测设备/装置/系统,尤其是应用于含有大量IP地址段的应用场景,本发明实施例将IP地址段之间是否存在冲突转化为在数轴上检测是否有线段产生交集,进而判断IP地址段之间是否产生冲突,并确认是否应该导入对应的配置。

下面结合各个实施例对本发明进行详细说明。

实施例一

根据本发明实施例,提供了一种IP地址段冲突检测的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的一种可选的IP地址段冲突检测方法的流程图,如图1所示,该方法包括如下步骤:

步骤S102,接收关联目标业务场景的N个IP地址段,其中,每个IP地址段至少包括:起始IP地址和终止IP地址,N为大于等于1的正整数;

步骤S104,对N个IP地址段进行数值转化,得到与每个IP地址段对应的数值范围;

步骤S106,比较所有IP地址段对应的数值范围,得到比较结果;

步骤S108,基于比较结果,确认IP地址段之间是否存在冲突。

通过上述步骤,先接收关联目标业务场景的N个IP地址段,其中,每个IP地址段至少包括:起始IP地址和终止IP地址,N为大于等于1的正整数,再对N个IP地址段进行数值转化,得到与每个IP地址段对应的数值范围,然后比较所有IP地址段对应的数值范围,得到比较结果,最后基于比较结果,确认IP地址段之间是否存在冲突。

在本实施例中,基于IP地址段确定起始IP地址和终止IP地址,并将IP地址段之间的冲突转化为具体数值,通过数值比较对大量IP地址段进行冲突检测,进而解决了相关技术中仅对单一IP地址之间的冲突情况进行检测,未对包含大量IP地址的IP地址段进行有效检测的技术问题。

本发明的目的是提供一种在大量的IP段地址之间检测是否冲突的方式,提高了检测效率,有相关业务时可以对冲突检测效率有一定的提升。

下面结合上述各实施步骤来详细说明本发明实施例。

步骤S102,接收关联目标业务场景的N个IP地址段,其中,每个IP地址段至少包括:起始IP地址和终止IP地址,N为大于等于1的正整数。

需要说明的是,本发明实施例的目标业务场景指的是IP地址段的配置导入场景,其中,每一个IP地址段都包含了大量的IP地址,本实施例对大量IP地址段之间的冲突情况进行检测,以决定是否应该导入对应的配置。

步骤S104,对N个IP地址段进行数值转化,得到与每个IP地址段对应的数值范围。

本发明实施例中,步骤S104包括:在IP地址段所包含的IP地址的地址类型为第一类地址的情况下,以分段点位为拆分基准,将IP地址段的起始IP地址和终止IP地址拆分为四段单数,得到起始单数集合和终止单数集合,其中,每个IP地址段包含M个IP地址,M为大于等于2的正整数;将起始单数集合代入预设计算公式,得到与起始IP地址对应的第一起始数值;将终止单数集合代入预设计算公式,得到与终止IP地址对应的第一终止数值;基于第一起始数值与第一终止数值,确定与IP地址段对应的数值范围。

可选的,以IPv4地址作为第一类地址进行示意说明,当IP地址为IPv4地址时,将IPv4地址看作256进制的分成四段的单个数,然后代入预设计算公式,假设有IPv4地址分为a.b.c.d四段单数,然后基于计算公式:

a*256

下面对于IPv4地址对应的IP子网进行说明。

针对IP子网的表达形式,可以根据IP子网掩码计算出起始IP和结束IP:假设有子网为a.b.c.d/m,首先,将a.b.c.d按照上述方法转化为自然数,将该自然数当作二进制看,根据掩码构造m个1拼接上(32-m)个0的一个二进制数,然后按位与自然数的二进制进行与操作,即可得到起始地址;然后对该起始地址的m位后的0开始,按位置1即可得到终止地址,从而将IP子网划归为起始IP到终止IP的形式,即得到IP地址段对应的数值范围。

本发明实施例中,步骤S104还包括:在IP地址段所包含的IP地址的地址类型为第二类地址的情况下,以分段点位为拆分基准,将IP地址段的起始IP地址和终止IP地址拆分为四段单数,得到起始单数集合和终止单数集合;分别将起始单数集合和终止单数集合中的各个地址单数进行数值进制转换,得到第二起始数值和第二终止数值;基于第二起始数值与第二终止数值,确定与IP地址段对应的数值范围。

本发明实施例中,分别将起始单数集合和终止单数集合中的各个地址单数进行数值进制转换,得到第二起始数值和第二终止数值的步骤,包括:将起始单数集合中十六进制的地址单数转化为二进制的地址单数;按照地址单数的顺序对四个二进制的地址单数进行拼接,得到二进制数值串;在指定幂次下,对二进制数值串进行累加求和处理,得到第二起始数值;将终止单数集合中十六进制的地址单数转化为二进制的地址单数;按照地址单数的顺序对四个二进制的地址单数进行拼接,得到二进制数值串;在指定幂次下,对二进制数值串进行累加求和处理,得到第二终止数值。

可选的,以IPv6地址为第二类地址进行示意说明,由于IPv6地址的每一段是由4个16进制数组成的,可以将IPv6地址每一段全部从十六进制转化到二进制进行拼接,然后对该二进制串在对应的幂次下进行累加求和,代入预设计算公式,假设转化后的IPv6地址为e.f.g.h四个二进制的地址单数,然后基于预设计算公式:

e*256

下面对于IPv6地址对应的IP子网进行说明。

针对IP子网的表达形式,可以根据IP子网掩码计算出起始IP和结束IP:假设有子网为e.f.g.h/n首先,将e.f.g.h转化为自然数,将该自然数当作二进制看,根据掩码构造n个1拼接上(32-n)个0的一个二进制数,然后按位与自然数的二进制进行与操作,即可得到起始地址;然后对该起始地址的n位后的0开始,按位置1即可得到终止地址,从而将IP子网划归为起始IP到终止IP的形式,即得到IP地址段对应的数值范围。

步骤S106,比较所有IP地址段对应的数值范围,得到比较结果。

本发明实施例中,步骤S106包括:将IP地址段对应的数值范围内每个数值都赋予所属IP地址段的段标签;将每两个IP地址段对应的数值范围放入目标数组;对目标数组中的所有数值进行排序,得到排序结果;比较排序结果中每个数值数值范围,得到比较结果。

需要说明的是,在得到IP地址对应的数值范围后,对同一IP段对应的数值打上相同的标签,用以标识其属于同一个地址段,而对于每个不同的IP地址段对应的数值则打上不同的标签,并将生成的数值放入数组,根据数值大小进行排序,图2是根据本发明实施例的一种可选的IP地址段数值转化的示意图,如图2所示,在将IP地址段转化为对应的数值时,可以理解为将IP转化为数值放置于数轴上,其中,A1,A2分别表示第一IP地址段的起始IP地址和终止IP地址,B1和B2分别表示第二IP地址段的起始IP地址和终止IP地址,C1和C2分别表示第三IP地址段的起始IP地址和终止IP地址,D1和D2分别表示第四IP地址段的起始IP地址和终止IP地址,N1和N2分别表示第N个IP地址段的起始IP地址和终止IP地址,A1和A2属于同一段标签A,A1和A2之间的数值均来自同一IP地址段。

步骤S108,基于比较结果,确认IP地址段之间是否存在冲突。

本发明实施例中,步骤S108包括:基于比较结果,判断目标数组中连续两个数值对应的段标签是否相同;在目标数组中连续两个数值对应的段标签相同的情况下,确认段标签映射的目标IP地址段不存在冲突。

需要说明的是,将IP地址进行数值化处理映射到数轴后,从前向后遍历,若数轴上相邻两个数值标签相同,则这个标签的地址段没有冲突,若前一个标签与后一个标签不一致,则当前标签的I P段与后一个标签的I P段相冲突,将当前标签跟后一个标签的I P段进行记录。如图2所示,I P地址段之间若不冲突,那么对应的数值化后映射在数轴上应该是两两独立的线段,线段之间不会出现交集;如果I P地址段之间出现重合部分,那么说明这两个地址段之间是相互冲突的,图中所示,A1-A2线段与C1-C2线段有交集,则说明A1-A2与C1-C2冲突,依次类推,直至N1-N2线段与其他线段均无交集,则表示这个标签段的I P地址没有冲突。

本发明实施例中,在目标数组中连续两个数值对应的段标签不相同的情况下,查询与连续两个数值中前一数值对应的段标签一以及与后一数值对应的段标签二;确认段标签一所映射的I P地址段与段标签二所映射的I P地址段之间存在冲突;将段标签一所映射的I P地址段与段标签二所映射的I P地址段记录至目标冲突地址段集合中。

需要说明的是,当某个点有多个标签重叠之时,则继续向后遍历直至点不重叠,将途中的段标签进行记录,则可获取到冲突I P段集合。

本发明实施例中,在目标数组中存在多个相同数值的情况下,查询与多个相同数值对应的所有段标签,将相同数值对应的所有段标签都记录至目标冲突地址段集合中。

通过上述实施例,将判断I P地址段之间的是否存在冲突转化为判断在数轴上是否有线段产生交集,可以针对不同种类之间的I P地址段之间的冲突进行检测,能够减少简单的I P地址段之间两两进行冲突检测的次数,提升检测的性能,优化业务判断速度。

下面结合一种更具体的实施例来说明本发明。

本发明实施例基于段标签和数值化进行I P的冲突检测,将I P地址的冲突转化为数轴上的线段交集,通过数值化对大量I P地址段冲突进行检测。

在进行冲突检测时,首先需要对I P地址数值化,将I P地址转化为对应的数值。

对于I Pv4地址,可以将I Pv4地址看作256进制的分成四段的单个数,然后根据计算公式得到具体数值,例如有I Pv4地址为a.b.c.d,跟据计算公式:

a*256

对于I Pv6地址,由于I Pv6地址的每一段是由4个16进制数组成的,可以将I Pv6地址每一段全部从十六进制转化到二进制进行拼接,然后代入预设计算公式,假设转化后的I Pv6地址为e.f.g.h四段单数,然后基于计算公式:

e*256

当获取到I P地址对应的数值后,基于子网掩码计算起始I P和终止I P。

假设有子网为a.b.c.d/m,在将a.b.c.d转化为自然数后,将该自然数当作二进制,我们根据掩码构造m个1拼接上(32-m)个0的一个二进制数,然后按位与自然数的二进制进行与操作,即可得到起始地址;然后对该起始地址的m位后的0开始,按位置1即可得到终止地址,进而可以将IP子网划归为起始IP-终止IP的形式。

在将IP子网表示为起始IP地址-终止IP地址的形式后,将每个IP地址段的数值对同一IP段对应的数值打上相同的标签,用以标识其属于同一个地址段,而对于每个不同的IP地址段对应的数值则打上不同的标签,例如A1和A2同属于段标签A,分别为段标签A对应的IP地址段的起始IP地址和终止IP地址,并将生成的数值放入数组,根据数值大小进行排序,如图2所示,在将IP地址段转化为对应的数值并排序后,将其映射到数轴上,其中,A1,A2分别表示第一IP地址段的起始IP地址和终止IP地址,B1和B2分别表示第二IP地址段的起始IP地址和终止IP地址,C1和C2分别表示第三IP地址段的起始IP地址和终止IP地址,D1和D2分别表示第四IP地址段的起始IP地址和终止IP地址,N1和N2分别表示第N个IP地址段的起始IP地址和终止IP地址,A1和A2属于同一段标签A,A1和A2之间的数值均来自同一IP地址段。

将IP地址进行数值化处理映射到数轴后,从前向后遍历,若数轴上相邻两个数值标签相同,则这个标签的地址段没有冲突,若前一个标签与后一个标签不一致,则当前标签的IP段与后一个标签的IP段相冲突,将当前标签跟后一个标签的IP段进行记录。如图2所示,IP地址段之间若不冲突,那么对应的数值化后映射在数轴上应该是两两独立的线段,线段之间不会出现交集;如果IP地址段之间出现重合部分,那么说明这两个地址段之间是相互冲突的,图中所示,A1-A2线段与C1-C2线段有交集,则说明A1-A2与C1-C2冲突,而N1-N2线段与其他线段均无交集,则表示这个标签段的IP地址没有冲突。

当某个点有多个标签重叠之时,则继续向后遍历直至点不重叠,将途中的标签进行记录,则可获取到冲突IP段集合。

通过上述实施例,将判断IP地址段之间的是否存在冲突转化为判断在数轴上是否有线段产生交集,可以针对不同种类之间的IP地址段之间的冲突进行检测,能够减少大量的IP地址段之间两两进行冲突检测的次数,提升检测的性能,优化业务判断速度。

下面结合另一种可选的实施例来说明本发明。

实施例二

本实施例提供了一种IP地址段冲突检测装置,该IP地址段冲突检测装置所包含的各个实施单元对应于实施例一中的各个实施步骤。

图3是根据本发明实施例的一种可选的I P地址段冲突检测装置的示意图,如图3所示,该I P地址段冲突检测装置包括:接收单元32、转化单元34、比较单元36、确认单元38,其中,

接收单元32,用于接收关联目标业务场景的N个I P地址段,其中,每个I P地址段至少包括:起始I P地址和终止I P地址,N为大于等于1的正整数;

转化单元34,用于对N个I P地址段进行数值转化,得到与每个I P地址段对应的数值范围;

比较单元36,用于比较所有I P地址段对应的数值范围,得到比较结果;

确认单元38,用于基于比较结果,确认I P地址段之间是否存在冲突。

上述I P地址段冲突检测装置通过接收单元32接收关联目标业务场景的N个I P地址段,其中,每个I P地址段至少包括:起始I P地址和终止I P地址,N为大于等于1的正整数;通过转化单元34对N个I P地址段进行数值转化,得到与每个I P地址段对应的数值范围;通过比较单元36比较所有I P地址段对应的数值范围,得到比较结果;通过确认单元38基于比较结果,确认I P地址段之间是否存在冲突。

在本实施例中,基于I P地址段确定起始I P地址和终止I P地址,并将I P地址段之间的冲突转化为具体数值,通过数值比较对大量I P地址段进行冲突检测,进而解决了相关技术中仅对单一I P地址之间的冲突情况进行检测,未对包含大量I P地址的I P地址段进行有效检测的技术问题。

可选地,转化单元34包括:第一拆分模块,用于在I P地址段所包含的I P地址的地址类型为第一类地址的情况下,以分段点位为拆分基准,将I P地址段的起始I P地址和终止I P地址拆分为四段单数,得到起始单数集合和终止单数集合,其中,每个I P地址段包含M个I P地址,M为大于等于2的正整数;第一代入模块,用于将起始单数集合代入预设计算公式,得到与起始I P地址对应的第一起始数值;第二代入模块,将终止单数集合代入预设计算公式,得到与终止I P地址对应的第一终止数值;第一确定模块,用于基于第一起始数值与第一终止数值,确定与I P地址段对应的数值范围。

可选的,当I P地址为I Pv4地址(对应于上述第一类地址)时,将I Pv4地址看作256进制的分成四段的单个数,然后代入预设计算公式,假设有I Pv4地址分为a.b.c.d四段单数,然后基于计算公式:

a*256

假设有子网为a.b.c.d/m,首先,将a.b.c.d按照上述方法转化为自然数,将该自然数当作二进制看,根据掩码构造m个1拼接上(32-m)个0的一个二进制数,然后按位与自然数的二进制进行与操作,即可得到起始地址(对应于上述第一起始数值);然后对该起始地址的m位后的0开始,按位置1即可得到终止地址,从而将I P子网划归为起始I P到终止I P的形式,即得到I P地址段对应的数值范围。

可选地,转化单元34还包括:对N个I P地址段进行数值转化,得到与每个I P地址段对应的数值范围的步骤,包括:第二拆分模块,用于在I P地址段所包含的I P地址的地址类型为第二类地址的情况下,以分段点位为拆分基准,将I P地址段的起始I P地址和终止IP地址拆分为四段单数,得到起始单数集合和终止单数集合;第一转换模块,用于分别将起始单数集合和终止单数集合中的各个地址单数进行数值进制转换,得到第二起始数值和第二终止数值;第二确定模块,用于基于第二起始数值与第二终止数值,确定与I P地址段对应的数值范围。

可选地,第一转换模块包括:第一处理子模块,用于将起始单数集合中十六进制的地址单数转化为二进制的地址单数;按照地址单数的顺序对四个二进制的地址单数进行拼接,得到二进制数值串;在指定幂次下,对二进制数值串进行累加求和处理,得到第二起始数值;第二处理子模块,用于将终止单数集合中十六进制的地址单数转化为二进制的地址单数;按照地址单数的顺序对四个二进制的地址单数进行拼接,得到二进制数值串;在指定幂次下,对二进制数值串进行累加求和处理,得到第二终止数值。

可选的,当I P地址为I Pv6地址(对应于上述第二类地址)时,由于I Pv6地址的每一段是由4个16进制数组成的,可以将I Pv6地址每一段全部从十六进制转化到二进制进行拼接,然后代入预设计算公式,假设转化后的I Pv6地址为e.f.g.h四段单数,然后基于计算公式:

e*256

假设有子网为e.f.g.h/n首先,将e.f.g.h转化为自然数,将该自然数当作二进制看,根据掩码构造n个1拼接上(32-n)个0的一个二进制数,然后按位与自然数的二进制进行与操作,即可得到起始地址(对应于上述第一起始数值);然后对该起始地址的n位后的0开始,按位置1即可得到终止地址,从而将I P子网划归为起始I P到终止I P的形式,即得到IP地址段对应的数值范围。

可选地,比较单元36包括:第一赋予模块,用于将I P地址段对应的数值范围内每个数值都赋予所属I P地址段的段标签;第一放入模块,用于将每两个I P地址段对应的数值范围放入目标数组;第一排序模块,用于对目标数组中的所有数值进行排序,得到排序结果;第一比较模块,用于比较排序结果中每个数值数值范围,得到比较结果。

需要说明的是,在得到IP地址对应的数值范围后,对同一IP段对应的数值打上相同的标签,用以标识其属于同一个地址段,而对于每个不同的IP地址段对应的数值则打上不同的标签,并将生成的数值放入数组,根据数值大小进行排序,如图2所示,在将IP地址段转化为对应的数值时,可以理解为将IP转化为数值放置于数轴上,其中,A1,A2分别表示第一IP地址段的起始IP地址和终止IP地址,B1和B2分别表示第二IP地址段的起始IP地址和终止IP地址,C1和C2分别表示第三IP地址段的起始IP地址和终止IP地址,D1和D2分别表示第四IP地址段的起始IP地址和终止IP地址,N1和N2分别表示第N个IP地址段的起始IP地址和终止IP地址,A1和A2属于同一段标签A,A1和A2之间的数值均来自同一IP地址段。

可选地,确认单元38包括:第一判断模块,用于基于比较结果,判断目标数组中连续两个数值对应的段标签是否相同;第一确认模块,用于在目标数组中连续两个数值对应的段标签相同的情况下,确认段标签映射的目标IP地址段不存在冲突。

需要说明的是,将IP地址进行数值化处理映射到数轴后,从前向后遍历,若数轴上相邻两个数值标签相同,则这个标签的地址段没有冲突,若前一个标签与后一个标签不一致,则当前标签的IP段与后一个标签的IP段相冲突,将当前标签跟后一个标签的IP段进行记录。如图2所示,IP地址段之间若不冲突,那么对应的数值化后映射在数轴上应该是两两独立的线段,线段之间不会出现交集;如果IP地址段之间出现重合部分,那么说明这两个地址段之间是相互冲突的,图中所示,A1-A2线段与C1-C2线段有交集,则说明A1-A2与C1-C2冲突,而N1-N2线段与其他线段均无交集,则表示这个标签段的IP地址没有冲突。

可选地,确认单元38还包括:第一查询模块,用于在目标数组中连续两个数值对应的段标签不相同的情况下,查询与连续两个数值中前一数值对应的段标签一以及与后一数值对应的段标签二;第二确认模块,用于确认段标签一所映射的IP地址段与段标签二所映射的IP地址段之间存在冲突;第一记录模块,用于将段标签一所映射的IP地址段与段标签二所映射的IP地址段记录至目标冲突地址段集合中。

可选地,IP地址段冲突检测装置还包括:第二查询模块,用于在目标数组中存在多个相同数值的情况下,查询与多个相同数值对应的所有段标签;第二记录模块,用于将相同数值对应的所有段标签都记录至目标冲突地址段集合中。

需要说明的是,当某个点有多个标签重叠之时,则继续向后遍历直至点不重叠,将途中的标签进行记录,则可获取到冲突IP段集合。

上述的IP地址段冲突检测装置还可以包括处理器和存储器,上述接收单元32、转化单元34、比较单元36、确认单元38等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数对IP地址段存在冲突的情况进行检测。

上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。

根据本发明实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述任意一项IP地址段冲突检测方法。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:接收关联目标业务场景的N个IP地址段,其中,每个IP地址段至少包括:起始IP地址和终止IP地址,N为大于等于1的正整数;对N个IP地址段进行数值转化,得到与每个IP地址段对应的数值范围;比较所有IP地址段对应的数值范围,得到比较结果;基于比较结果,确认IP地址段之间是否存在冲突。

图4是根据本发明实施例的一种IP地址段冲突检测方法的电子设备(或移动设备)的硬件结构框图。如图4所示,电子设备可以包括一个或多个(图中采用402a、402b,……,402n来示出)处理器402(处理器402可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器404。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、键盘、电源和/或相机。本领域普通技术人员可以理解,图4所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

相关技术
  • 互联网协议IP地址获取方法、装置、存储介质及电子设备
  • 一种IP地址管理方法及IP地址管理装置
  • 可弯曲电子设备、可弯曲电子设备的控制方法、装置及电子设备
  • 电子设备显示屏驱动芯片驱动方法、装置及电子设备
  • IP地址段查找方法与业务调度方法、装置、电子设备
  • IP地址冲突检测方法、装置、设备及存储介质
技术分类

06120115930487