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

IPv6种子地址的抽样方法、装置、设备及存储介质与流程

2022-02-20 19:41:01 来源:中国专利 TAG:

ipv6种子地址的抽样方法、装置、设备及存储介质
技术领域
1.本发明涉及地址探测技术领域,特别涉及一种ipv6种子地址的抽样方法、装置、设备及存储介质。


背景技术:

2.基于ipv6(internet protocol version 6,互联网协议第6版)种子地址的地址探测技术是将已有的ipv6种子地址输入到ipv6地址探测算法中,从而生成未知的可能存活的ipv6地址;由于ipv6地址空间庞大,ipv6种子地址的分布不均匀,若使用较密集的ipv6种子地址,则探测出的ipv6地址会集中于某个网段;此外,若将大量ipv6种子地址直接输入到ipv6地址探测算法中,则会增加计算负担,降低地址探测的效率。


技术实现要素:

3.本发明的目的在于提供一种ipv6种子地址的抽样方法、装置、设备及存储介质,能够提高ipv6地址探测的效率。
4.根据本发明的一个方面,提供了一种ipv6种子地址的抽样方法,所述方法包括:
5.获取种子地址集;其中,所述种子地址集包括多个ipv6种子地址;
6.将属于同一网段的ipv6种子地址划分到一个种子地址组中;
7.根据每个种子地址组中的ipv6种子地址的总数量,从每个种子地址组中随机抽取一定数量的ipv6种子地址;
8.将抽取出的所有ipv6种子地址输入到指定的地址探测算法中,以通过所述地址探测算法探测出新的且存活的ipv6地址。
9.可选的,在所述将属于同一网段的ipv6种子地址划分到一个种子地址组中的步骤之前,所述方法还包括:
10.将每个ipv6种子地址转换为预定地址格式。
11.可选的,所述根据每个种子地址组中的ipv6种子地址的总数量,从每个种子地址组中随机抽取一定数量的ipv6种子地址的步骤,具体包括:
12.针对一个种子地址组,统计包含在所述种子地址组中的ipv6种子地址的总数量;
13.根据统计出的总数量,利用预设算法,计算出抽样个数;
14.按照所述抽样个数,从所述种子地址组中随机抽取ipv6种子地址。
15.可选的,所述将抽取出的所有ipv6种子地址输入到指定的地址探测算法中的步骤,具体包括:
16.将抽取出的所有ipv6种子地址发送至第三方探活平台,以供所述第三方探活平台判断每个ipv6种子地址是否存活;
17.接收由所述第三方探活平台反馈回的探活结果,并根据所述探活结果计算出存活种子地址占比;
18.根据所述存活种子地址占比,设置所述指定的地址探测算法的扫描次数参数;其
中,所述存活种子地址占比的值与所述扫描次数参数的值成反比;
19.将所有存活的ipv6种子地址输入到所述指定的地址探测算法中。
20.可选的,所述指定的地址探测算法为6tree地址探测算法。
21.可选的,在所述将抽取出的所有ipv6种子地址输入到指定的地址探测算法中的步骤之后,所述方法还包括:
22.获取所述地址探测算法输出的ipv6地址,并将获取到的ipv6地址添加到预设的数据库中。
23.为了实现上述目的,本发明还提供一种ipv6种子地址的抽样装置,所述装置包括:
24.获取模块,用于获取种子地址集;其中,所述种子地址集包括多个ipv6种子地址;
25.分组模块,用于将属于同一网段的ipv6种子地址划分到一个种子地址组中;
26.抽样模块,用于根据每个种子地址组中的ipv6种子地址的总数量,从每个种子地址组中随机抽取一定数量的ipv6种子地址;
27.输入模块,用于将抽取出的所有ipv6种子地址输入到指定的地址探测算法中,以通过所述地址探测算法探测出新的且存活的ipv6地址。
28.可选的,所述输入模块,具体用于:
29.将抽取出的所有ipv6种子地址发送至第三方探活平台,以供所述第三方探活平台判断每个ipv6种子地址是否存活;
30.接收由所述第三方探活平台反馈回的探活结果,并根据所述探活结果计算出存活种子地址占比;
31.根据所述存活种子地址占比,设置所述指定的地址探测算法的扫描次数参数;其中,所述存活种子地址占比的值与所述扫描次数参数的值成反比;
32.将所有存活的ipv6种子地址输入到所述指定的地址探测算法中。
33.为了实现上述目的,本发明还提供一种计算机设备,该计算机设备具体包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述介绍的ipv6种子地址的抽样方法的步骤。
34.为了实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述介绍的ipv6种子地址的抽样方法的步骤。
35.本发明提供的ipv6种子地址的抽样方法、装置、设备及存储介质,通过对ipv6种子地址进行分类和抽样,在保持原有ipv6种子地址的空间广度分布相对不变的前提下,稀疏ipv6种子地址的分布,使得基于ipv6种子地址的ipv6地址探测算法提高对未知地址空间的探测效率。此外,由于先对ipv6种子地址进行抽样,可以减少输入到ipv6地址探测算法的ipv6种子地址数量,从而提高了ipv6地址探测的效率。
附图说明
36.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
37.图1为实施例一提供的ipv6种子地址的抽样方法的一种可选的流程示意图;
38.图2为实施例二提供的ipv6种子地址的抽样装置的一种可选的组成结构示意图;
39.图3为实施例三提供的计算机设备的一种可选的硬件架构示意图。
具体实施方式
40.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
41.实施例一
42.本发明实施例提供了一种ipv6种子地址的抽样方法,如图1所示,该方法具体包括以下步骤:
43.步骤s101:获取种子地址集;其中,所述种子地址集包括多个ipv6种子地址。
44.种子地址是事先收集的曾经或者一直存活的ipv6地址;种子地址是作为探测目的地的ip地址。目前有多个可提供种子地址集的平台,例如,中国教育科研计算机网,可从开源的平台获取种子地址集。
45.步骤s102:将属于同一网段的ipv6种子地址划分到一个种子地址组中。
46.具体的,步骤s102,包括:
47.根据ipv6种子地址的前32位,将前32位相同的ipv6种子地址划分到一个种子地址组中。
48.其中,ipv6种子地址的前32位是由站点前缀和子网id构成的;在本实施例中,根据地址前32位对种子地址集中的所有ipv6种子地址进行聚类分组,以形成不同的种子地址组。
49.进一步的,为了便于分组,在步骤s102之前,所述方法还包括:
50.将每个ipv6种子地址转换为预定地址格式。
51.优选的,所述预定地址格式为不省略0位的冒分十六进制地址格式。
52.需要说明的是,由于ipv6的地址长度为128位,是ipv4地址长度的4倍,所以ipv4所采用的点分十进制地址格式不再使用,ipv6采用十六进制表示地址;ipv6有以下三种地址格式:冒分十六进制地址格式、0位压缩地址格式和内嵌ipv4地址格式。其中,冒分十六进制地址格式为:x:x:x:x:x:x:x:x,每个x表示地址中的16b,以十六进制表示,例如:abcd:ef01:2345:6789:abcd:ef01:2345:6789;当采用冒分十六进制地址格式时,每个x的前导0是可以省略的,例如:2001:0db8:0000:0023:0008:0800:200c:417a可写成2001:db8:0:23:8:800:200c:417a;当采用0位压缩地址格式时,可以把连续的一段0压缩为“::”,例如:可将ff01:0:0:0:0:0:0:1101写成ff01::1101;当采用内嵌ipv4地址格式时,通常表示为:x:x:x:x:x:x:d.d.d.d,前96b采用冒分十六进制表示,而最后32b地址则使用ipv4的点分十进制表示,例如,::ffff:192.168.0.1。
53.更进一步的,所述将每个ipv6种子地址转换为预定地址格式的步骤,具体包括:
54.分别确定出每个ipv6种子地址的地址格式;
55.当一个ipv6种子地址的地址格式为冒分十六进制地址格式时,按照预设规则,将所述ipv6种子地址中已省略的0位补全,以将所述ipv6种子地址转换为不省略0位的冒分十六进制地址格式;
56.当一个ipv6种子地址的地址格式为0位压缩地址格式时,按照预设规则,将所述ipv6种子地址中已压缩的0位补全,以将所述ipv6种子地址转换为不省略0位的冒分十六进制地址格式;
57.当一个ipv6种子地址的地址格式为内嵌ipv4地址格式时,按照预设规则,识别出内嵌在所述ipv6种子地址中的ipv4地址,并将所述ipv4地址进行十六进制转换,以将所述ipv6种子地址转换为不省略0位的冒分十六进制地址格式。
58.步骤s103:根据每个种子地址组中的ipv6种子地址的总数量,从每个种子地址组中随机抽取一定数量的ipv6种子地址。
59.具体的,步骤s103包括:
60.步骤a1:针对一个种子地址组,统计包含在所述种子地址组中的ipv6种子地址的总数量;
61.步骤a2:根据统计出的总数量,利用预设算法,计算出抽样个数;
62.步骤a3:按照所述抽样个数,从所述种子地址组中随机抽取ipv6种子地址。
63.在本实施例中,为了不改变ipv6种子地址空间分布的广度,可以采用对数运算log对统计出的总数量进行值域压缩,从而得到种子地址组的抽样个数。还可以采用随机抽样一致性算法、普通随机抽样、概率加权随机抽样等任何能够实现抽样的算法,本技术不对预设抽样算法进行具体限定。
64.步骤s104:将抽取出的所有ipv6种子地址输入到指定的地址探测算法中,以通过所述地址探测算法探测出新的且存活的ipv6地址。
65.具体的,步骤s104,包括:
66.步骤b1:将抽取出的所有ipv6种子地址发送至第三方探活平台,以供所述第三方探活平台判断每个ipv6种子地址是否存活;
67.步骤b2:接收由所述第三方探活平台反馈回的探活结果,并根据所述探活结果计算出存活种子地址占比;
68.其中,所述存活种子地址占比是:存活的ipv6种子地址的总数量与抽取出的ipv6种子地址的总数量的比值;
69.步骤b3:根据所述存活种子地址占比,设置所述指定的地址探测算法的扫描次数参数;其中,所述存活种子地址占比的值与所述扫描次数参数的值成反比;
70.需要说明的是,在使用地址探测算法时可根据需要设置扫描次数参数;若抽样得到的ipv6种子地址的存活率较低,则设置较高的扫描次数,从而得到更好的探测效果。优选的,若存活种子地址占比的值小于60%,则将扫描次数参数的值设置为预设值;若存活种子地址占比的值大于60%,则使用扫描次数参数的默认值。
71.步骤b4:将所有存活的ipv6种子地址输入到所述指定的地址探测算法中。
72.优选的,所述指定的地址探测算法为6tree地址探测算法,6tree算法的核心思想是分析已知的活动地址作为种子地址来学习它们的分布特征,将ipv6地址理解为高维向量,并在相应的种子向量上执行分裂层次聚类,以生成空间树的数据结构,该数据结构表征不同维度中的半字节值变化。
73.进一步的,在步骤s104之后,所述方法还包括:
74.获取所述地址探测算法输出的ipv6地址,并将获取到的ipv6地址添加到预设的数
据库中。
75.此外,还可以将获取到的ipv6地址更新到所述种子地址集中,以根据更新后的种子地址集并利用所述地址探测算法探测出更多的ipv6地址。
76.在本实施例中,分别从每个种子地址组中抽取出一定数量的ipv6种子地址,并将从各个种子地址组中抽取出的ipv6种子地址形成新的种子地址集,从而将新的种子地址集作为指定地址探测算法的输入,从而通过指定地址探测算法探测出未知的且存活的ipv6地址。
77.与现有的直接将获取到的种子地址集输入到地址探测算法中相比,通过对种子地址的抽样,可以减少输入到地址探测算法中的种子地址数量,从而提高了地址探测效率;此外,由于在抽样过程中是按比例抽样,不会改变原有种子地址的空间分布规律,通过稀疏种子地址的分布,使得地址探测算法扩大了对未知地址空间的探测。通过将种子地址抽样与地址探测算法相结合,可以在1至2小时内,从获得几十万量级的未知探活的ipv6地址提升到获得百万量级的未知探活的ipv6地址。
78.此外,为了进一步证明本实施例可以提高ipv6地址探测的效率,通过使用alexa1m种子地址集和6tree地址探测算法,比较改进前后的地址探测结果;如表1所示,为利用alexa1m种子地址集和6tree地址探测算法实现ipv6地址探测的实验数据表:
79.表1
[0080][0081]
其中,alexa1m是alexa’s top 1millon的ipv6种子地址集,原种子地址集包含13.9万个ipv6种子地址。
[0082]
在实验过程中,按照上述步骤s101至步骤s104的方式,对alexa1m种子地址集进行分组和抽样,以形成新的种子地址集;将新的种子地址集输入6tree地址探测算法;基于种子的6tree地址探测算法通过构造空间树结构和动态扫描实时反馈地址的有效率,从而生成未知的ipv6地址。在本次实验中,采用ipv6种子地址的抽样方法的6tree地址探测算法与未处理种子地址的6tree地址探测算法相比,可以在1小时内从基于13.9万种子地址生成121万的未知ipv6地址提高到从基于1.6万(抽样后)种子地址生成1441万的未知ipv6地址,ipv6地址探测的效率提高了十倍。
[0083]
实施例二
[0084]
本发明实施例提供了一种ipv6种子地址的抽样装置,如图2所示,该装置具体包括以下组成部分:
[0085]
1)获取模块201,用于获取种子地址集;其中,所述种子地址集包括多个ipv6种子地址。
[0086]
种子地址是事先收集的曾经或者一直存活的ipv6地址;种子地址是作为探测目的地的ip地址。目前有多个可提供种子地址集的平台,例如,中国教育科研计算机网,可从开源的平台获取种子地址集。
[0087]
2)分组模块202,用于将属于同一网段的ipv6种子地址划分到一个种子地址组中。
[0088]
具体的,分组模块202,用于:
[0089]
根据ipv6种子地址的前32位,将前32位相同的ipv6种子地址划分到一个种子地址组中。
[0090]
其中,ipv6种子地址的前32位是由站点前缀和子网id构成的;在本实施例中,根据地址前32位对种子地址集中的所有ipv6种子地址进行聚类分组,以形成不同的种子地址组。
[0091]
进一步的,所述装置还包括:
[0092]
转换模块,用于将每个ipv6种子地址转换为预定地址格式。
[0093]
优选的,所述预定地址格式为不省略0位的冒分十六进制地址格式。
[0094]
更进一步的,所述转换模块,具体用于:
[0095]
分别确定出每个ipv6种子地址的地址格式;
[0096]
当一个ipv6种子地址的地址格式为冒分十六进制地址格式时,按照预设规则,将所述ipv6种子地址中已省略的0位补全,以将所述ipv6种子地址转换为不省略0位的冒分十六进制地址格式;
[0097]
当一个ipv6种子地址的地址格式为0位压缩地址格式时,按照预设规则,将所述ipv6种子地址中已压缩的0位补全,以将所述ipv6种子地址转换为不省略0位的冒分十六进制地址格式;
[0098]
当一个ipv6种子地址的地址格式为内嵌ipv4地址格式时,按照预设规则,识别出内嵌在所述ipv6种子地址中的ipv4地址,并将所述ipv4地址进行十六进制转换,以将所述ipv6种子地址转换为不省略0位的冒分十六进制地址格式。
[0099]
3)抽样模块203,用于根据每个种子地址组中的ipv6种子地址的总数量,从每个种子地址组中随机抽取一定数量的ipv6种子地址。
[0100]
具体的,抽样模块203,用于:
[0101]
针对一个种子地址组,统计包含在所述种子地址组中的ipv6种子地址的总数量;根据统计出的总数量,利用预设算法,计算出抽样个数;按照所述抽样个数,从所述种子地址组中随机抽取ipv6种子地址。
[0102]
在本实施例中,为了不改变ipv6种子地址空间分布的广度,用对数运算log对统计出的总数量进行值域压缩,从而得到种子地址组的抽样个数。
[0103]
4)输入模块204,用于将抽取出的所有ipv6种子地址输入到指定的地址探测算法中,以通过所述地址探测算法探测出新的且存活的ipv6地址。
[0104]
具体的,输入模块204,用于:
[0105]
将抽取出的所有ipv6种子地址发送至第三方探活平台,以供所述第三方探活平台判断每个ipv6种子地址是否存活;接收由所述第三方探活平台反馈回的探活结果,并根据所述探活结果计算出存活种子地址占比;根据所述存活种子地址占比,设置所述指定的地址探测算法的扫描次数参数;其中,所述存活种子地址占比的值与所述扫描次数参数的值成反比;将所有存活的ipv6种子地址输入到所述指定的地址探测算法中。
[0106]
需要说明的是,所述存活种子地址占比是:存活的ipv6种子地址的总数量与抽取出的ipv6种子地址的总数量的比值;此外,在使用地址探测算法时可根据需要设置扫描次数参数;若抽样得到的ipv6种子地址的存活率较低,则设置较高的扫描次数,从而得到更好
的探测效果。优选的,若存活种子地址占比的值小于60%,则将扫描次数参数的值设置为预设值;若存活种子地址占比的值大于60%,则使用扫描次数参数的默认值。
[0107]
进一步的,所述指定的地址探测算法为6tree地址探测算法,6tree算法的核心思想是分析已知的活动地址作为种子地址来学习它们的分布特征,将ipv6地址理解为高维向量,并在相应的种子向量上执行分裂层次聚类,以生成空间树的数据结构,该数据结构表征不同维度中的半字节值变化。
[0108]
更进一步的,所述装置还包括:
[0109]
获取模块,用于获取所述地址探测算法输出的ipv6地址,并将获取到的ipv6地址添加到预设的数据库中。
[0110]
在本实施例中,分别从每个种子地址组中抽取出一定数量的ipv6种子地址,并将从各个种子地址组中抽取出的ipv6种子地址形成新的种子地址集,从而将新的种子地址集作为指定地址探测算法的输入。
[0111]
与现有的直接将获取到的种子地址集输入到地址探测算法中相比,通过对种子地址的抽样,可以减少输入到地址探测算法中的种子地址数量,从而提高了地址探测效率;此外,由于在抽样过程中是按比例抽样,不会改变原有种子地址的空间分布规律,通过稀疏种子地址的分布,使得地址探测算法扩大了对未知地址空间的探测。
[0112]
实施例三
[0113]
本实施例还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图3所示,本实施例的计算机设备30至少包括但不限于:可通过系统总线相互通信连接的存储器301、处理器302。需要指出的是,图3仅示出了具有组件301-302的计算机设备30,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
[0114]
本实施例中,存储器301(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器301可以是计算机设备30的内部存储单元,例如该计算机设备30的硬盘或内存。在另一些实施例中,存储器301也可以是计算机设备30的外部存储设备,例如该计算机设备30上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。当然,存储器301还可以既包括计算机设备30的内部存储单元也包括其外部存储设备。在本实施例中,存储器301通常用于存储安装于计算机设备30的操作系统和各类应用软件。此外,存储器301还可以用于暂时地存储已经输出或者将要输出的各类数据。
[0115]
处理器302在一些实施例中可以是中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器302通常用于控制计算机设备30的总体操作。
[0116]
具体的,在本实施例中,处理器302用于执行处理器302中存储的ipv6种子地址的抽样方法的程序,所述ipv6种子地址的抽样方法的程序被执行时实现如下步骤:
[0117]
获取种子地址集;其中,所述种子地址集包括多个ipv6种子地址;
[0118]
将属于同一网段的ipv6种子地址划分到一个种子地址组中;
[0119]
根据每个种子地址组中的ipv6种子地址的总数量,从每个种子地址组中随机抽取一定数量的ipv6种子地址;
[0120]
将抽取出的所有ipv6种子地址输入到指定的地址探测算法中,以通过所述地址探测算法探测出新的且存活的ipv6地址。
[0121]
上述方法步骤的具体实施例过程可参见第一实施例,本实施例在此不再重复赘述。
[0122]
实施例四
[0123]
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘、服务器、app应用商城等等,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下方法步骤:
[0124]
获取种子地址集;其中,所述种子地址集包括多个ipv6种子地址;
[0125]
将属于同一网段的ipv6种子地址划分到一个种子地址组中;
[0126]
根据每个种子地址组中的ipv6种子地址的总数量,从每个种子地址组中随机抽取一定数量的ipv6种子地址;
[0127]
将抽取出的所有ipv6种子地址输入到指定的地址探测算法中,以通过所述地址探测算法探测出新的且存活的ipv6地址。
[0128]
上述方法步骤的具体实施例过程可参见第一实施例,本实施例在此不再重复赘述。
[0129]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0130]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0131]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
[0132]
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
再多了解一些

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

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

相关文献