IP地址去重方法和装置与流程

文档序号:11156993阅读:1759来源:国知局
IP地址去重方法和装置与制造工艺
本申请涉及通信
技术领域
,尤其涉及一种IP地址去重方法和装置。
背景技术
:互联网的高速发展为人们的生活带来了很多便利,同时也带来了很多安全隐患,例如不法分子利用系统漏洞进行攻击等网络安全事件。在这种环境下,网络安全产品应运而生,这类产品从发现系统漏洞、防护恶意攻击等角度保护系统安全,可以解决大部分常见的漏洞攻击问题。在网络安全产品中,通常需要配置扫描目标以明确保护对象。以漏洞扫描产品为例,通常可以配置扫描目标的域名、IP地址等信息,后续可以对扫描目标进行漏洞扫描,从而及时发现扫描目标中的系统漏洞。通常,为了提高扫描效率,可以进行批量扫描,即同时对多个扫描目标进行漏洞扫描。因此在配置扫描目标时,还可以配置扫描目标所属的网段信息,比如:192.168.0.1/24、192.168.0.1-192.168.0.254等。在这种情况下,极有可能配置重复的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地址去重的效率。附图说明图1是本申请一示例性实施例示出的一种IP地址去重方法的流程图;图2是本申请一示例性实施例示出的一种IP地址去重装置所在设备的硬件结构图;图3是本申请一示例性实施例示出的一种IP地址去重装置的框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。相关技术中,网络设备可以先按照预设规则将用户配置的IP地址范围转换为数值范围;其中,所述规则可以包括将IPv4地址作为32位无符号整型的二进制数值转换为十进制数值,例如:假设用户配置的IP地址范围为0.0.1.10-0.0.1.50,则网络设备可以将该IP地址范围转换为数值范围266-306。后续网络设备可以依次遍历各IP地址范围对应的数值范围,并对遍历到的两个数值范围进行比较、取并集等处理,以得到去重后的最终IP地址范围。举例来说,假设网络设备在对用户配置的IP地址范围进行转换后,得到的数值范围如下:20-70、5-15、10-50、70-100、400、300-600,则网络设备确定最终数值范围的步骤如下:首先将20-70确定为第一最终数值范围,然后将5-15与20-70进行比较,由于两者没有交集,因此可以将5-15确定为第二最终数值范围;再将10-50与20-70进行比较,由于两者有交集,因此可以将第一最终数值范围更新为10-70;以此类推。在第一次遍历完成后,确定的最终数值范围有3个,分别为:10-100、5-15、300-600。接下来可以进行第二次遍历,在第二次遍历完成后,确定的最终数值范围有2个,分别为:5-100、300-600。后续网络设备可以将这2个最终数值范围再转换为对应的IP地址范围,作为最终IP地址范围。由于网络设备在判断两个数值范围之间是否有交集时,需要对这两个数值范围进行相交、包含、相离三种检测,即需要对这两组数值范围进行3次比较,因此相关技术中IP地址去重的效率低下,且实现复杂。请参考图1,为本申请一示例性实施例示出的一种IP去重方法的流程图,所述方法可以应用于安装有网络安全产品的网络设备中,例如:防火墙、服务器等。该IP去重方法可以包括以下步骤:步骤101:提取预设IP地址范围的边界IP地址;其中,所述边界IP地址包括:左边界IP地址、右边界IP地址。在本实施例中,网络设备可以为用户提供配置界面,用户可以通过该配置界面配置扫描目标所属的网段信息,例如:192.168.0.1-192.168.0.254。后续网络设备可以提取IP地址范围的边界IP地址,包括左边界IP地址和右边界IP地址。举例来说,假设用户预先配置的IP地址范围为192.168.0.1-192.168.0.254,则网络设备可以提取192.168.0.1和192.168.0.254作为边界IP地址,其中,192.168.0.1是左边界IP地址,192.168.0.254是右边界IP地址。特别地,如果配置有单一的IP地址,例如:192.168.1.1,则网络设备在提取192.168.1.1作为左边界IP地址的同时,还可以提取192.168.1.1作为右边界IP地址。步骤102:基于预设规则将所述边界IP地址转换为对应的地址参数。在本实施例中,网络设备在提取出边界IP地址后,可以基于预设规则将提取出的边界IP地址转换为对应的地址参数;其中,所述规则可以由技术人员预先设置。在一个可选的实施例中,如果网络设备在前述步骤101中提取出的边界IP地址为IPv4地址,则可以将所述IPv4地址作为32位无符号整型的二进制数值,换算为对应的十进制数值,并将所述十进制数值作为所述IPv4地址对应的地址参数。举例来说,假设网络设备提取出的某一边界IP地址为IPv4地址192.168.0.1,则网络设备可以将该IPv4地址作为二进制数值11000000101010000000000000000001换算为对应的十进制数值3232235521,进而网络设备可以将十进制数值3232235521作为该边界IP地址对应的地址参数。在另一个例子中,如果网络设备在前述步骤101中提取出的边界IP地址为IPv6地址,则可以先按照地址位从高位至低位的顺序将所述IPv6地址划分为4个地址段,并将所述4个地址段作为4个32位无符号整型的二进制数值,分别换算为对应的十进制数值,后续网络设备可以将换算得到的4个十进制数值作为所述IPv6地址对应的地址参数。举例来说,假设网络设备提取出的某一边界IP地址为IPv6地址CDCD:910A:2222:5498:8475:1111:3900:2020,则网络设备可以先按照地址位从高位至低位的顺序将该IPv6地址划分为4个地址段,分别为:CDCD910A、22225498、84751111、39002020,并将这4个地址段作为4个32位无符号整型的二进制数值,分别为:11001101110011011001000100001010、00100010001000100101010010011000、10000100011101010001000100010001、00111001000000000010000000100000,再将这4个二进制数值换算为对应的4个十进制数值,分别为:3452801290、572675224、2222264593、956309536。后续网络设备可以将这4个十进制数值作为该边界IP地址对应的地址参数。步骤103:按照大小顺序依次排列所述边界IP地址对应的地址参数,并基于排列结果将所述边界IP地址划分为一个或多个地址组;其中,每个地址组中左边界IP地址与右边界IP地址的数量相等。在本实施例中,网络设备在将提取出的边界IP地址转换为对应的地址参数后,可以先按照大小顺序依次排列所述边界IP地址对应的地址参数。具体地,网络设备可以按照从小到大的顺序排列所述地址参数,即将较小的地址参数排列在较大的地址参数的左侧;也可以按照从大到小的顺序排列所述地址参数,即将较小的地址参数排列在较大的地址参数的右侧。后续网络设备可以基于排列结果将所述边界IP地址划分为一个或多个地址组,其中,每个地址组中左边界IP地址与右边界IP地址的数量相等。在一个可选的实施例中,网络设备可以为各边界IP地址对应的地址参数设置边界标识;其中,左边界IP地址对应的地址参数设置有左边界标识,右边界IP地址对应的地址参数则设置有右边界标识。网络设备还可以设置初始为0的分组值,并从排列在首位的地址参数开始,按照排列顺序检测各地址参数对应的边界标识。当所述边界标识为左边界标识时,网络设备可以将分组值加1;而当所述边界标识为右边界标识时,网络设备则可以将所述分组值减1。当所述分组值重新变为0时,网络设备可以将已检测的地址参数所对应的边界IP地址划分为一个地址组。在实际应用中,也可以将分组值增加或减少预设的数值,本申请对此不作特殊限制。需要说明的是,当网络设备在前述步骤101中提取出的边界IP地址为IPv6地址时,如果要比较第一IPv6地址和第二IPv6地址所对应的地址参数之间的大小关系,则网络设备可以按照地址段从高位到低位的顺序,依次比较所述第一IPv6地址和所述第二IPv6地址中高低相同的地址段所对应的十进制数值的大小。若所述第一IPv6地址的第一地址段所对应的十进制数值大于所述第二IPv6地址中与所述第一地址段高低相同的第二地址段所对应的十进制数值,则确定所述第一IPv6地址对应的地址参数大于所述第二IPv6地址对应的地址参数。以步骤102中的举例为例,针对提取出的边界IP地址,即第一IPv6地址CDCD:910A:2222:5498:8475:1111:3900:2020,网络设备在对该边界IP地址进行转换后,得到的该边界IP地址对应的地址参数如下表1所示:地址段CDCD910A222254988475111139002020十进制数值34528012905726752242222264593956309536表1假设网络设备提取出的另一边界IP地址为第二IPv6地址CDCD:910A:2222:5498:8475:1053:3AC9:E3A0,则网络设备在对该边界IP地址进行转换后,得到的该边界IP地址对应的地址参数如下表2所示:地址段CDCD910A22225498847510533AC9E3A0十进制数值34528012905726752242222264403986309536表2网络设备在比较这2个边界IP地址所对应的地址参数之间的大小关系时,可以从最高位的地址段开始,先将第一IPv6地址的最高位地址段对应的十进制数值3452801290与第二IPv6地址的最高位地址段对应的十进制数值3452801290进行比较;由于这2个十进制数值的大小相等,因此网络设备可以再将第一IPv6地址的次高位地址段对应的十进制数值572675224与第二IPv6地址的次高位地址段对应的十进制数值572675224进行比较;由于这2个十进制数值的大小也相等,因此网络设备可以继续将第一IPv6地址的第三高位地址段对应的十进制数值2222264593与第二IPv6地址的第三高位地址段对应的十进制数值2222264403进行比较;由于十进制数值2222264593大于十进制数值2222264403,因此网络设备可以确定第一IPv6地址对应的地址参数大于第二IPv6地址对应的地址参数。当网络设备按照从小到大的顺序排列提取出的边界IP地址对应的数值时,则可以将第一IPv6地址对应的地址参数排列在第二IPv6地址对应的地址参数的右侧;而当网络设备按照从小到大的顺序排列提取出的边界IP地址对应的地址参数时,则可以将第一IPv6地址对应的地址参数排列在第二IPv6地址对应的地址参数的左侧。在另一个可选的实施例中,为了进一步提升IP地址去重的效果,网络设备在按照从小到大的顺序排列提取出的边界IP地址对应的地址参数时,如果检测到存在多个大小相等的地址参数,则可以将大小相等的左边界IP地址排列右边界IP地址的左侧。相应地,网络设备在按照从大到小的顺序排列提取出的边界IP地址对应的地址参数时,如果检测到存在多个大小相等的地址参数,则可以将大小相等的左边界IP地址排列在右边界IP地址的右侧。步骤104:选取每个地址组中排列在首位和末位的边界IP地址,作为最终IP地址范围的边界IP地址。在本实施例中,网络设备可以从划分好的每个地址组中选取出排列在首位和末尾的边界IP地址,并将所述边界IP地址作为最终IP地址范围的边界IP地址,进而网络设备可以确定最终IP地址范围。具体地,当网络设备按照从小到大的顺序排列提取出的边界IP地址对应的地址参数时,可以选取每个地址组中排列在首位和末位的边界IP地址,分别作为最终IP地址范围的左边界IP地址和右边界IP地址;而当网络设备按照从大到小的顺序排列提取出的边界IP地址对应的地址参数时,则可以选取每个地址组中排列在首位和末位的边界IP地址,分别作为最终IP地址范围的右边界IP地址和左边界IP地址。以相关技术中的举例为例,网络设备可以将提取出的边界IP地址转换为对应的地址参数,此外还可以为各边界IP地址对应的地址参数设置边界标识,如下表3所示:地址参数2070515105070100400400300600边界标识左右左右左右左右左右左右表3网络设备可以按照大小顺序依次排列表3中的所有地址参数。假设网络设备按照从小到大的顺序排列表3中的所有地址参数,则得到的排列结果如下表4所示:地址参数5101520507070100300400400600边界标识左左右左右右左右左左右右表4后续网络设备可以设置初始为0的分组值,并从排列在首位的地址参数5开始,按照表4所示的排列顺序检测各地址参数对应的边界标识。由于地址参数5对应的边界标识为左边界标识,因此网络设备可以将分组值加1;由于地址参数10对应的边界标识也为左边界标识,因此网络设备可以再将分组值加1;由于地址参数15对应的边界标识为右边界标识,因此网络设备可以将分组值减1;以此类推。当网络设备检测到设置有右边界标识的地址参数70时,分组值变为1+1-1+1-1-1=0,则网络设备可以将前6个地址参数所对应的边界IP地址划分为一个地址组。采用这样的方式,划分出的地址组如下表5所示:表5由表5可见,每组中设置有左边界标识的地址参数与设置有右边界标识的地址参数的数量相等,即每个地址组中左边界IP地址与右边界IP地址的数量相等。网络设备在划分出表5所示的3个地址组后,可以选取第一组中排列在首位的地址参数5对应的边界IP地址0.0.0.5作为第一最终IP地址范围的左边界IP地址,选取第一组中排列在末位的地址参数70对应的边界IP地址0.0.0.70作为第一最终IP地址范围的右边界IP地址;选取第二组中排列在首位的地址参数70对应的边界IP地址0.0.0.70作为第二最终IP地址范围的左边界IP地址,选取第二组中排列在末位的地址参数100对应的边界IP地址0.0.0.100作为第二最终IP地址范围的右边界IP地址;以此类推。网络设备可以得到3个最终IP地址范围,分别为:0.0.0.5-0.0.0.70、0.0.0.70-0.0.0.100、0.0.1.44-0.0.2.88。由上述举例可见,网络设备确定的3个最终IP地址范围中,IP地址范围0.0.0.5-0.0.0.70和IP地址范围0.0.0.70-0.0.0.100还可以进行合并。为了解决该问题,提升IP地址去重的效果,网络设备在按照从小到大的顺序排列表3中的所有地址参数时,可以将对应地址参数70的左边界IP地址排列在对应地址参数70的右边界IP地址的左侧,即将设置有左边界标识的地址参数70排列在设置有右边界标识的地址参数70的左侧。同时,还可以将对应地址参数400的左边界IP地址排列在对应地址参数400的右边界IP地址的左侧,即将设置有左边界标识的地址参数400排列在设置有右边界标识的地址参数400的左侧,如下表6所示:表6由表6可见,采用这样的方式,网络设备可以划分出2个地址组,进而可以得到2个最终IP地址范围,分别为:0.0.0.5-0.0.0.100、0.0.1.44-0.0.2.88。由上述实施例可见,网络设备可以将提取出的边界IP地址对应的地址参数按照大小顺序排列,并基于排列结果将所述边界IP地址划分为一个或多个地址组,后续网络设备可以根据地址组的划分结果确定不重复的最终IP地址范围。与相关技术相比,本申请技术方案比较的是地址参数之间的大小关系,即仅需对要比较的两个地址参数进行1次比较,比较次数更少,有效提高了IP地址去重的效率;同时,基于为各边界IP地址对应的地址参数设置的边界标识,对所述边界IP地址进行地址组划分,较之对数值范围进行取并集处理更易于实现,也进一步提高了IP地址去重的效率。与前述IP地址去重方法的实施例相对应,本申请还提供了IP地址去重装置的实施例。本申请IP地址去重装置的实施例可以应用在网络设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在网络设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图2所示,为本申请IP地址去重装置所在网络设备的一种硬件结构图,除了图2所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的网络设备通常根据该IP地址去重的实际功能,还可以包括其他硬件,对此不再赘述。请参考图3,为本申请一示例性实施例示出的一种IP地址去重装置的框图,该IP地址去重装置300可以应用于图2所示的网络设备中,包括:地址提取单元301,用于提取预设IP地址范围的边界IP地址;其中,所述边界IP地址包括:左边界IP地址、右边界IP地址;地址转换单元302,用于基于预设规则将所述边界IP地址转换为对应的地址参数;地址划分单元303,用于按照大小顺序依次排列所述边界IP地址对应的地址参数,并基于排列结果将所述边界IP地址划分为一个或多个地址组;其中,每个地址组中左边界IP地址与右边界IP地址的数量相等;范围确定单元304,用于选取每个地址组中排列在首位和末位的边界IP地址,作为最终IP地址范围的边界IP地址。在一个可选的实施例中,所述地址划分单元303具体可以用于:按照从小到大的顺序排列所述边界IP地址对应的地址参数,并在存在多个大小相等的地址参数时,将大小相等的左边界IP地址排列右边界IP地址的左侧;或者,按照从大到小的顺序排列所述边界IP地址对应的地址参数,并在存在多个大小相等的地址参数时,将大小相等的左边界IP地址排列在右边界IP地址的右侧。在另一个可选的实施例中,所述地址转换单元302可以包括:第一地址转换子单元3021,用于当提取出的边界IP地址为IPv4地址时,将所述IPv4地址作为32位无符号整型的二进制数值换算为对应的十进制数值,并将所述十进制数值作为所述IPv4地址对应的地址参数;第二地址转换子单元3022,用于当提取出的边界IP地址为IPv6地址时,按照地址位从高位至低位的顺序将所述IPv6地址划分为4个地址段,将所述4个地址段作为4个32位无符号整型的二进制数值分别换算为对应的十进制数值,并将得到的4个十进制数值作为所述IPv6地址对应的地址参数。在另一个可选的实施例中,当提取出的边界IP地址为IPv6地址时,可以通过以下方式进行第一IPv6地址和第二IPv6地址所对应的地址参数的大小比较:按照地址段从高位到低位的顺序,依次比较所述第一IPv6地址和所述第二IPv6地址中高低相同的地址段所对应的十进制数值的大小;若所述第一IPv6地址的第一地址段所对应的十进制数值大于所述第二IPv6地址中与所述第一地址段高低相同的第二地址段所对应的十进制数值,则确定所述第一IPv6地址对应的地址参数大于所述第二IPv6地址对应的地址参数。在另一个可选的实施例中,所述地址划分单元303可以包括:标识设置子单元3031,用于为各边界IP地址对应的地址参数设置边界标识,所述边界标识包括:左边界标识、右边界标识;标识检测子单元3032,用于从排列在首位的地址参数开始,按照排列顺序检测各地址参数对应的边界标识;分组值计算子单元3033,用于当所述边界标识为左边界标识时,将分组值加1;当所述边界标识为右边界标识时,将所述分组值减1;其中,所述分组值初始为0;地址划分子单元3034,用于当所述分组值重新变为0时,将已检测的地址参数所对应的边界IP地址划分为一个地址组。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1