测绘方法、装置、网络设备及可读存储介质与流程

文档序号:24028981发布日期:2021-02-23 22:31阅读:44来源:国知局
测绘方法、装置、网络设备及可读存储介质与流程

[0001]
本申请涉及计算机技术领域,具体而言,涉及一种测绘方法、装置、网络设备及可读存储介质。


背景技术:

[0002]
在进行网络测绘时,需要对海量地址进行遍历。在遍历过程中,一般会按照地址由大到小或由小到大的顺序进行遍历。上述方式容易被探测目标发现并屏蔽,不利于进行网络测绘。


技术实现要素:

[0003]
有鉴于此,本申请提供了一种测绘方法、装置、网络设备及可读存储介质,其能够避免一定时间段内连续对某个ip地址进行扫描,进而避免被探测目标发现并屏蔽,保证网络测绘正常进行。
[0004]
本申请的实施例可以这样实现:
[0005]
第一方面,本申请实施例提供一种测绘方法,包括:
[0006]
获得扫描任务,所述扫描任务中包括待扫描ip地址数组及待扫描端口数组;
[0007]
针对各扫描序号,根据预设规则、该扫描序号、所述待扫描ip地址数组及待扫描端口数组,确定该扫描序号对应的目标地址,其中,所述目标地址中包括目标待扫描ip地址及目标待扫描端口号,所述预设规则用于根据所有的扫描序号、所述待扫描ip地址数组及待扫描端口数组确定出不重复的全排列目标地址组,所述目标地址组中的目标地址按照对应的扫描序号排列,排列后的目标地址中所包括的ip地址分散出现;
[0008]
按照扫描序号由小到大的顺序,依次根据各扫描序号对应的目标地址发送扫描报文,以进行网络测绘。
[0009]
在可选的实施方式中,排列后的目标地址中所包括的端口号分散出现,所述预设规则包括第一预设计算公式及第二预设计算公式,所述根据预设规则、该扫描序号、所述待扫描ip地址数组及待扫描端口数组,确定该扫描序号对应的目标地址,包括:
[0010]
根据该扫描序号、所述待扫描ip地址数组及待扫描端口数组及第一预设计算公式,确定出所述目标待扫描ip地址,其中,所述第一预设计算公式为:
[0011][0012]
其中,b1表示所述待扫描ip地址数组,b1[m]表示所述待扫描ip地址数组中第m+1个待扫描ip地址,i表示该扫描序号,y1表示所述待扫描ip地址数组中包括的待扫描ip地址的数量,z表示所述待扫描端口数组中包括的待扫描端口号的数量,lcm(y1,z)表示y1与z的最小公倍数,%表示取模;
[0013]
根据该扫描序号、所述待扫描端口数组及第二预设计算公式,确定出所述目标待
扫描端口号,其中,所述第二预设计算公式为:
[0014]
c[i%z]
[0015]
其中,c表示所述待扫描端口数组;
[0016]
根据所述目标待扫描ip地址及目标待扫描端口号确定该扫描序号对应的目标地址。
[0017]
在可选的实施方式中,排列后的目标地址中所包括的端口号分散出现,所述预设规则包括第三预设计算公式、第四预设计算公式及第五预设计算公式,所述待扫描ip地址数组包括待扫描网段数组及待扫描主机数组,所述根据预设规则、该扫描序号、所述待扫描ip地址数组及待扫描端口数组,确定该扫描序号对应的目标地址,包括:
[0018]
根据该扫描序号、所述待扫描网段数组、所述待扫描主机数组、所述待扫描端口数组及第三预设计算公式,确定出目标待扫描网段,其中,所述第三预设计算公式为:
[0019][0020]
其中,a表示所述待扫描网段数组,a[m]表示所述待扫描网段数组中第m+1个待扫描网段,i表示该扫描序号,x表示所述待扫描网段数组中包括的待扫描网段的数量,y2表示所述待扫描主机数组中包括的待扫描主机号的数量,z表示所述待扫描端口数组中包括的待扫描端口号的数量,lcm(x,y2*z)表示x与y2*z的最小公倍数,%表示取模;
[0021]
根据该扫描序号、所述待扫描主机数组、所述待扫描端口数组及第四预设计算公式,确定出目标待扫描主机号,其中,所述第四预设计算公式为:
[0022][0023]
其中,b2表示所述待扫描主机数组;
[0024]
根据该扫描序号、所述待扫描端口数组及第五预设计算公式,确定出所述目标待扫描端口号,其中,所述第五预设计算公式为:
[0025]
c[i%z]
[0026]
其中,c表示所述待扫描端口数组;
[0027]
根据所述目标待扫描网段、目标待扫描主机号及目标待扫描端口号确定该扫描序号对应的所述目标地址。
[0028]
在可选的实施方式中,所述方法还包括:
[0029]
预先对各数组各自对应的数据进行随机排序,并将排序结果作为测绘时使用的数组,其中,测绘时使用的数组包括所述待扫描ip地址数组及待扫描端口数组。
[0030]
第二方面,本申请实施例提供一种测绘装置,包括:
[0031]
获得模块,用于获得扫描任务,所述扫描任务中包括待扫描ip地址数组及待扫描端口数组;
[0032]
地址确定模块,用于针对各扫描序号,根据预设规则、该扫描序号、所述待扫描ip地址数组及待扫描端口数组,确定该扫描序号对应的目标地址,其中,所述目标地址中包括目标待扫描ip地址及目标待扫描端口号,所述预设规则用于根据所有的扫描序号、所述待
扫描ip地址数组及待扫描端口数组确定出不重复的全排列目标地址组,所述目标地址组中的目标地址按照对应的扫描序号排列,排列后的目标地址中所包括的ip地址分散出现;
[0033]
测绘模块,用于按照扫描序号由小到大的顺序,依次根据各扫描序号对应的目标地址发送扫描报文,以进行网络测绘。
[0034]
在可选的实施方式中,排列后的目标地址中所包括的端口号分散出现,所述预设规则包括第一预设计算公式及第二预设计算公式,所述地址确定模块具体用于:
[0035]
根据该扫描序号、所述待扫描ip地址数组及待扫描端口数组及第一预设计算公式,确定出所述目标待扫描ip地址,其中,所述第一预设计算公式为:
[0036][0037]
其中,b1表示所述待扫描ip地址数组,b1[m]表示所述待扫描ip地址数组中第m+1个待扫描ip地址,i表示该扫描序号,y1表示所述待扫描ip地址数组中包括的待扫描ip地址的数量,z表示所述待扫描端口数组中包括的待扫描端口号的数量,lcm(y1,z)表示y1与z的最小公倍数,%表示取模;
[0038]
根据该扫描序号、所述待扫描端口数组及第二预设计算公式,确定出所述目标待扫描端口号,其中,所述第二预设计算公式为:
[0039]
c[i%z]
[0040]
其中,c表示所述待扫描端口数组;
[0041]
根据所述目标待扫描ip地址及目标待扫描端口号确定该扫描序号对应的目标地址。
[0042]
在可选的实施方式中,排列后的目标地址中所包括的端口号分散出现,所述预设规则包括第三预设计算公式、第四预设计算公式及第五预设计算公式,所述待扫描ip地址数组包括待扫描网段数组及待扫描主机数组,所述地址确定模块具体用于:
[0043]
根据该扫描序号、所述待扫描网段数组、所述待扫描主机数组、所述待扫描端口数组及第三预设计算公式,确定出目标待扫描网段,其中,所述第三预设计算公式为:
[0044][0045]
其中,a表示所述待扫描网段数组,a[m]表示所述待扫描网段数组中第m+1个待扫描网段,i表示该扫描序号,x表示所述待扫描网段数组中包括的待扫描网段的数量,y2表示所述待扫描主机数组中包括的待扫描主机号的数量,z表示所述待扫描端口数组中包括的待扫描端口号的数量,lcm(x,y2*z)表示x与y2*z的最小公倍数,%表示取模;
[0046]
根据该扫描序号、所述待扫描主机数组、所述待扫描端口数组及第四预设计算公式,确定出目标待扫描主机号,其中,所述第四预设计算公式为:
[0047][0048]
其中,b2表示所述待扫描主机数组;
[0049]
根据该扫描序号、所述待扫描端口数组及第五预设计算公式,确定出所述目标待扫描端口号,其中,所述第五预设计算公式为:
[0050]
c[i%z]
[0051]
其中,c表示所述待扫描端口数组;
[0052]
根据所述目标待扫描网段、目标待扫描主机号及目标待扫描端口号确定该扫描序号对应的所述目标地址。
[0053]
在可选的实施方式中,所述获得模块还用于:
[0054]
预先对各数组各自对应的数据进行随机排序,并将排序结果作为测绘时使用的数组,其中,测绘时使用的数组包括所述待扫描ip地址数组及待扫描端口数组。
[0055]
第三方面,本申请实施例提供一种网络设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现前述实施方式中任意一项所述的测绘方法。
[0056]
第四方面,本申请实施例提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述实施方式中任意一项所述的测绘方法。
[0057]
本申请实施例提供的测绘方法、装置、网络设备及可读存储介质,在获得扫描任务后,针对各扫描序号,根据预设规则、该扫描序号、扫描任务中的待扫描ip地址数组及待扫描端口数组,确定该扫描序号对应的目标地址;并按照扫描序号由小到大的顺序,依次根据各扫描序号对应的目标地址发送扫描报文,以进行网络测绘。其中,该预设规则用于根据所有的扫描序号、待扫描ip地址数组及待扫描端口数组确定出不重复的全排列目标地址组,该目标地址组中的目标地址按照对应的扫描序号排列,排列后的目标地址中所包括的ip地址分散出现。由此,在测绘时,不会出现一定时间段内连续对某个ip地址进行扫描的情况,进而可避免被探测目标发现并屏蔽,保证网络测绘正常进行。
附图说明
[0058]
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0059]
图1为本申请实施例提供的网络设备的方框示意图;
[0060]
图2为本申请实施例提供的测绘方法的流程示意图之一;
[0061]
图3为本申请实施例提供的集合组的示意图;
[0062]
图4为图2中步骤s130包括的子步骤的流程示意之一;
[0063]
图5为图2中步骤s130包括的子步骤的流程示意图之二;
[0064]
图6为本申请实施例提供的测绘方法的流程示意图之二;
[0065]
图7为本申请实施例提供的测绘装置的方框示意图。
[0066]
图标:100-网络设备;110-存储器;120-处理器;130-通信单元;200-测绘装置;210-获得模块;220-地址确定模块;230-测绘模块。
具体实施方式
[0067]
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
[0068]
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0069]
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0070]
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。需要说明的是,在不冲突的情况下,本申请的实施例中的特征可以相互结合。
[0071]
请参照图1,图1为本申请实施例提供的网络设备100的方框示意图。所述网络设备100可以是独立的服务器、集群服务器或其他设备等。所述网络设备100包括存储器110、处理器120及通信单元130。所述存储器110、处理器120以及通信单元130各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
[0072]
其中,存储器110用于存储程序或者数据。所述存储器110可以是,但不限于,随机存取存储器(random access memory,ram),只读存储器(read only memory,rom),可编程只读存储器(programmable read-only memory,prom),可擦除只读存储器(erasable programmable read-only memory,eprom),电可擦除只读存储器(electric erasable programmable read-only memory,eeprom)等。
[0073]
处理器120用于读/写存储器110中存储的数据或程序,并执行相应地功能。比如,存储器110中存储有测绘装置200,所述测绘装置200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器110中的软件功能模块。所述处理器120通过运行存储在存储器110内的软件程序以及模块,如本申请实施例中的测绘装置200,从而执行各种功能应用以及数据处理,即实现本申请实施例中的测绘方法。
[0074]
通信单元130用于通过网络建立所述网络设备100与其它通信终端之间的通信连接,并用于通过所述网络收发数据。
[0075]
应当理解的是,图1所示的结构仅为网络设备100的结构示意图,所述网络设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
[0076]
请参照图2,图2为本申请实施例提供的测绘方法的流程示意图之一。所述方法可以应用于上述网络设备100。下面对测绘方法的具体流程进行详细阐述。所述方法可以包括步骤s120~步骤s140。
[0077]
步骤s120,获得扫描任务。
[0078]
在本实施例中,所述网络设备100可以根据接收到的用户操作或其他设备发送的测绘命令等,确定扫描任务。其中,所述扫描任务中包括待扫描ip地址数组及待扫描端口数
组。所述待扫描ip地址数组中包括多个待扫描ip地址,所述待扫描ip地址数组中的具体待扫描ip地址可以根据实际测绘需求进行设置。待扫描ip地址是指需要进行扫描的ip地址,该ip地址可以是ipv4地址和/或ipv6地址。所述待扫描端口数组中包括多个待扫描端口号,所述待扫描端口数组中的具体待扫描端口号可以根据实际测绘需求进行设置,比如,1~65535,待扫描端口号是指需要进行扫描的端口的端口号。
[0079]
步骤s130,针对各扫描序号,根据预设规则、该扫描序号、所述待扫描ip地址数组及待扫描端口数组,确定该扫描序号对应的目标地址。
[0080]
在获得扫描任务后,需要依次针对各目标地址扫描,以进行网络测绘。其中,上述目标地址为网络测绘过程中需要被扫描的地址。可以对整个扫描过程中的各次扫描进行编号,每次扫描对应的编号即为该次扫描的扫描序号。整个扫描过程表示对所有目标地址进行扫描的过程。各次扫描的扫描序号由扫描顺序确定,比如,第一次扫描的扫描序号可以为0,那么第二次扫描的扫描序号则为1,依次类推,确定各次扫描的扫描序号。针对各次扫描,需要先确定出该次扫描对应的目标地址,即确定出该次扫描针对的被测目标的地址。
[0081]
针对各扫描序号,可根据该扫描序号、预设规则、所述待扫描ip地址数组及待扫描端口数组,确定出该扫描序号对应的目标地址。其中,所述目标地址中包括目标待扫描ip地址及目标待扫描端口号,所述目标待扫描ip地址是所述待扫描ip地址数组中的一个待扫描ip地址,所述目标待扫描端口号是所述待扫描端口数组中的一个待扫描端口号。由此,可获得各扫描序号对应的目标地址。
[0082]
所述预设规则用于根据所有的扫描序号、所述待扫描ip地址数组及所述待扫描端口数组确定出一个不重复的全排列目标地址组,该目标地址组中的目标地址按照各目标地址对应的扫描序号排列,排列后的目标地址中所包括的ip地址分散出现,即该目标地址组中的目标地址所包括的ip地址是分散出现的。
[0083]
请参照图3,图3为本申请实施例提供的集合组的示意图。有两个集合:ips=[a,b,c,d],ports=[0,1,2]。一般情况下,会按照地址由大到小或由小到大的顺序,根据各地址发送扫描报文。在该方式中,在一段时间内,会持续对某个ip地址进行扫描,很容易被目标发现并屏蔽。也就是说,在现有方式中,基于上述集合会得到以下地址:a0、a1、a2、b0、

、d2,并根据该地址顺序进行测绘。在该方式中,a0、a1、a2中的a频繁出现,没有做到a、b、c、d分散出现。而在本申请实施例中,则可以使a、b、c、d分散出现,以保证目标地址的随机性,使得测绘过程没有规律,不易被被测目标发现并屏蔽。
[0084]
步骤s140,按照扫描序号由小到大的顺序,依次根据各扫描序号对应的目标地址发送扫描报文,以进行网络测绘。
[0085]
可选地,可以先确定所有扫描序号各自对应的目标地址,然后按照扫描序号由小到大的顺序,依次根据各扫描序号对应的目标地址发送扫描报文。也可以按照扫描序号由小到大的顺序,先确定出一个扫描序号对应的目标地址,然后根据该目标地址发送扫描报文;接着再确定一个扫描序号对应的目标地址,然后根据新确定的目标地址发送扫描报文;重复以上操作,即可进行网络测绘。当然可以理解的是,上述仅为举例说明,确定扫描序号对应的目标地址及发送扫描报文的顺序可以根据实际需求设置,比如,先确定出一部分扫描序号各自对应的目标地址,然后发送扫描报文。
[0086]
本申请实施例在进行测绘时,基于预设规则、所有的扫描序号、所述待扫描ip地址
数组及待扫描端口数组可确定出不重复的全排列目标地址组,该目标地址组中的每个目标地址对应一个扫描序号,并根据所对应的扫描序号进行排序,排序后该目标地址组的目标地址中所包括的ip地址分散出现;进而按照所对应的扫描序号由小到大的顺序,根据各扫描序号对应的目标地址发送扫描报文。在整个扫描过程中,由于ip地址是分散出现的,因此可以避免同一时间段内对同一个ip地址连续进行扫描的情况,使得测绘过程是随机化的,也即测绘过程没有规律,降低被被测目标发现并屏蔽的概率。同时,由于目标地址组是不重复且全排列的,因此还可以避免在测绘过程中出现对同一被测目标进行重复扫描的情况,并且保证全覆盖,即对所有需要进行扫描的地址都进行了扫描。
[0087]
可选地,排列后的目标地址中所包括的端口号也可以是分散出现的,由此可进一步保证测绘的随机性。
[0088]
可选地,在本实施例一种实施方式中,所述预设规则可以包括第一预设计算公式及第二预设计算公式,请参照图4,图4为图2中步骤s130包括的子步骤的流程示意之一。在本实施方式中,步骤s130可以包括子步骤s131~子步骤s133。
[0089]
子步骤s131,根据该扫描序号、所述待扫描ip地址数组及待扫描端口数组及第一预设计算公式,确定出所述目标待扫描ip地址。
[0090]
其中,所述第一预设计算公式为:
[0091][0092]
其中,b1表示所述待扫描ip地址数组,b1[m]表示所述待扫描ip地址数组中第m+1个待扫描ip地址,i表示该扫描序号,i∈[0,y1*z-1],y1表示所述待扫描ip地址数组中包括的待扫描ip地址的数量,z表示所述待扫描端口数组中包括的待扫描端口号的数量,lcm(y1,z)表示y1与z的最小公倍数,%表示取模。
[0093]
子步骤s132,根据该扫描序号、所述待扫描端口数组及第二预设计算公式,确定出所述目标待扫描端口号。
[0094]
其中,所述第二预设计算公式为:
[0095]
c[i%z]
[0096]
其中,c表示所述待扫描端口数组。
[0097]
子步骤s133,根据所述目标待扫描ip地址及目标待扫描端口号确定该扫描序号对应的目标地址。
[0098]
下面结合图3对上述实现方式进行举例说明。
[0099]
图3中有两个集合:ips=[a,b,c,d],ports=[0,1,2]。图3中的ips为上述所述待扫描ip地址数组,ips中包括的待扫描ip地址数量为4;ports为上述待扫描端口数组,ports中包括的待扫描端口号的数量为3。图3中的id表示扫描序号。
[0100]
针对扫描序号0,根据扫描序号0、所述第一预设计算公式、所述待扫描ip地址数组及待扫描端口数组,可计算得到扫描序号0对应的目标待扫描ip地址为:同理,可计算得到扫描序号1对应的目标待扫描
ip地址为:
[0101]
针对扫描序号0,根据扫描序号0、所述第二预设计算公式及所述待扫描端口数组,可计算得到扫描序号0对应的目标待扫描端口号为:ports[0%4]=ips[0]=0。同理,可计算得到扫描序号1对应的目标待扫描端口号为:ports[1%4]=ips[1]=1。
[0102]
扫描序号0对应的目标待扫描ip地址为a、目标待扫描序号为0,则可以确定扫描序号0对应的目标地址为a0;扫描序号1对应的目标待扫描ip地址为b、目标待扫描序号为1,则可以确定扫描序号1对应的目标地址为b1。由此可确定出整个扫描过程中的第0组目标地址及第1组目标地址,同时不需要大量的计算机资源。
[0103]
在本实施例的另一种实施方式中,所述预设规则可以包括第三预设计算公式、第四预设计算公式及第五预设计算公式,所述待扫描ip地址数组包括待扫描网段数组及待扫描主机数组。所述待扫描网段数组中包括需要被扫描的网段,所述待扫描主机数组中包括需要被扫描的主机的主机号。请参照图5,图5为图2中步骤s130包括的子步骤的流程示意图之二。步骤s130可以包括子步骤s135~子步骤s138。
[0104]
子步骤s135,根据该扫描序号、所述待扫描网段数组、所述待扫描主机数组、所述待扫描端口数组及第三预设计算公式,确定出目标待扫描网段。
[0105]
其中,所述第三预设计算公式为:
[0106][0107]
其中,a表示所述待扫描网段数组,a[m]表示所述待扫描网段数组中第m+1个待扫描网段,i表示该扫描序号,i∈[0,x*y2*z],x表示所述待扫描网段数组中包括的待扫描网段的数量,y2表示所述待扫描主机数组中包括的待扫描主机号的数量,z表示所述待扫描端口数组中包括的待扫描端口号的数量,lcm(x,y2*z)表示x与y2*z的最小公倍数,%表示取模。
[0108]
子步骤s136,根据该扫描序号、所述待扫描主机数组、所述待扫描端口数组及第四预设计算公式,确定出目标待扫描主机号。
[0109]
其中,所述第四预设计算公式为:
[0110][0111]
其中,b2表示所述待扫描主机数组。
[0112]
子步骤s137,根据该扫描序号、所述待扫描端口数组及第五预设计算公式,确定出所述目标待扫描端口号。
[0113]
其中,所述第五预设计算公式为:
[0114]
c[i%z]
[0115]
其中,c表示所述待扫描端口数组。
[0116]
子步骤s137,根据所述目标待扫描网段、目标待扫描主机号及目标待扫描端口号确定该扫描序号对应的所述目标地址。
[0117]
通过图5所示方式获得各扫描序号对应的目标地址,可以避免一段时间内对同一网段进行扫描,从而使得测绘更加随机化,保证测绘的正常进行。
[0118]
下面对图5所示实现方式进行举例说明。
[0119]
假设所述待扫描数组为[a1,a2,...,a
x
]、所述待扫描主机数组为[b1,b2,...,b
y2
]、所述待扫描端口数组为[c1,c2,...,c
z
]。所述待扫描数组中包括的待扫描网段的数量为x,所述待扫描主机数组中包括的待扫描主机号的数量为y2,所述待扫描端口数组中包括的待扫描端口号的数量为z。
[0120]
针对扫描序号0,可通过所述第三预设计算公式计算得到该扫描序号0对应的目标待扫描网段为:通过所述第四预设计算公式计算得到该扫描序号0对应的目标待扫描主机号为:通过所述第五预设计算公式计算得到该扫描序号0对应的目标待扫描端口号为:c[0%z]=c[0]=c1。由此,根据以上信息,可确定出扫描序号0对应的目标地址为a1b1c1。
[0121]
可选地,在扫描过程中,可以根据实际需求选择通过图4所示方式或者图5所示方式确定目标地址。比如,不管针对ipv4地址还是ipv6地址,可以将被测地址分为天然的两部分:ip地址、端口号,由此可以基于图4所示方式快速确定出目标地址。
[0122]
还可以在针对ipv4地址进行网络测绘时,将ipv4地址对应的被测地址直接划分为三段:网段、主机号、端口号,然后可以采用图5所示方式确定目标地址;在针对ipv6地址也采用图5所示确定目标地址时,可以将ipv6地址对应的被测地址分为天然的两段:ipv6地址、端口号,其中,可按照一定划分方式将ipv6地址划分为两部分,由此将ipv6地址对应的被测地址一共分为三段,进而基于图5所示方式确定目标地址。由此,可进一步保证测绘过程的随机性。
[0123]
在本实施例中,请参照图6,图6为本申请实施例提供的测绘方法的流程示意图之二。在步骤s120之前,所述方法还可以包括步骤s110。
[0124]
步骤s110,预先对各数组各自对应的数据进行随机排序,并将排序结果作为测绘时使用的数组。
[0125]
在本实施例中,可预先根据接收到的用户操作或其他方式确定待扫描的ip地址及端口号,并根据实际需求确定是否将ip地址划分为网段及主机号两部分。
[0126]
可选地,若需要扫描的是ipv4地址,可以根据设置的网段掩码长度确定待扫描的网段。例如,有24位掩码,则可以确定待扫描的网段范围为:0.0.0~255.0.0,总数量为2
24
(约为1677万);主机总数:32-24=8位,即:28=256个。待扫描的端口数量总量可以为65535个。当然可以理解的是,具体的待扫描ip地址及端口可以根据实际需求设置。
[0127]
在确定出各数组对应的数据后,可以将每一个数组所对应的数据随机打乱,并将打乱之后的结果作为测绘时使用的数组。其中,测绘时使用的数组包括所述待扫描ip地址数组及待扫描端口数组。也即,可预先对所述待扫描ip地址数组及待扫描端口数组各自对应的数据进行随机排序,并将各自的随机排序结果作为所述扫描任务中的待扫描ip地址数
组、待扫描端口数据;或者,预先对所述待扫描网段数组、待扫描主机数组及待扫描端口数组各自对应的数据进行随机排序,并将各自的排序结果作为所述扫描任务中的待扫描网段数组、待扫描主机数组及待扫描端口数组。由此,可以进一步保证测绘过程的随机性。
[0128]
可选地,在进行测绘时,可由多个节点设备共同实现,以避免由同一设备进行测绘时该设备的任务量大的情况。多个节点设备中可以包括主节点、与主节点通信连接的多个子节点。下面以针对ipv4地址为例,对多个节点设备如何进行测绘进行举例说明。其中,确定目标地址时使用图5所示方式。
[0129]
主节点可以先确定出所述待扫描网段数组、待扫描主机数组、待扫描端口数组各自对应的数据,然后将各数组对应的数据进行随机排序,并将各数组对应的随机排序结果作为后续测绘中使用的数组,即得到所述待扫描网段数组、待扫描主机数组、待扫描端口数组。
[0130]
在通过子节点进行测绘前,可以先定义轮数及步长。可选地,可以定义待扫描网段数量为1轮,在假设24位掩码的情况下,即为2
24
个被测目标地址为一轮,全量目标为:网段数量
×
主机数量
×
端口数量,因此将全部ipv4地址对应的目标地址遍历一遍,总共需要的轮数为:主机数量
×
端口数量=256*65535=16776960轮。
[0131]
步长表示每一个分配给子节点的扫描任务中包括多少轮次。假设步长为8,则表示定义分配给子节点的每个扫描任务中包括8轮扫描,共有8*2
24
个目标。在此基础上,可以将整个扫描任务按照8轮扫描、2
24
个目标为一轮进行分割。
[0132]
可选地,可以采用filename_start_end表示分割后的任务。其中,filename是包含所述待扫描网段数组、待扫描主机数组、待扫描端口数组及所述预设规则的一个文件,主节点可以将该文件发送给子节点,以使子节点进行随机化扫描。start表示从第几轮开始,end表示到第几轮结束。比如,filename_0_8,表示需要从第0轮开始到第7轮;filename_8_16,表示需要从第8轮开始到第15轮。
[0133]
在实际进行扫描时,子节点接收到主节点分发的任务,并根据任务中的所述待扫描网段数组、待扫描主机数组、待扫描端口数组及所述预设规则,获得需要扫描的目标地址,进而进行扫描,从而实现网络测绘。
[0134]
为了执行上述实施例及各个可能的方式中的相应步骤,下面给出一种测绘装置200的实现方式,可选地,该测绘装置200可以采用上述图1所示的网络设备100的器件结构。进一步地,请参照图7,图7为本申请实施例提供的测绘装置200的方框示意图。需要说明的是,本实施例所提供的测绘装置200,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。所述测绘装置200可以包括:获得模块210、地址确定模块220及测绘模块230。
[0135]
所述获得模块210,用于获得扫描任务,所述扫描任务中包括待扫描ip地址数组及待扫描端口数组。
[0136]
所述地址确定模块220,用于针对各扫描序号,根据预设规则、该扫描序号、所述待扫描ip地址数组及待扫描端口数组,确定该扫描序号对应的目标地址。其中,所述目标地址中包括目标待扫描ip地址及目标待扫描端口号,所述预设规则用于根据所有的扫描序号、所述待扫描ip地址数组及待扫描端口数组确定出不重复的全排列目标地址组,所述目标地址组中的目标地址按照对应的扫描序号排列,排列后的目标地址中所包括的ip地址分散出
现。
[0137]
所述测绘模块230,用于按照扫描序号由小到大的顺序,依次根据各扫描序号对应的目标地址发送扫描报文,以进行网络测绘。
[0138]
可选地,在本实施例中,排列后的目标地址中所包括的端口号分散出现,所述预设规则包括第一预设计算公式及第二预设计算公式,所述地址确定模块220具体用于:
[0139]
根据该扫描序号、所述待扫描ip地址数组及待扫描端口数组及第一预设计算公式,确定出所述目标待扫描ip地址,其中,所述第一预设计算公式为:
[0140][0141]
其中,b1表示所述待扫描ip地址数组,b1[m]表示所述待扫描ip地址数组中第m+1个待扫描ip地址,i表示该扫描序号,y1表示所述待扫描ip地址数组中包括的待扫描ip地址的数量,z表示所述待扫描端口数组中包括的待扫描端口号的数量,lcm(y1,z)表示y1与z的最小公倍数,%表示取模;
[0142]
根据该扫描序号、所述待扫描端口数组及第二预设计算公式,确定出所述目标待扫描端口号,其中,所述第二预设计算公式为:
[0143]
c[i%z]
[0144]
其中,c表示所述待扫描端口数组;
[0145]
根据所述目标待扫描ip地址及目标待扫描端口号确定该扫描序号对应的目标地址。
[0146]
可选地,在本实施例中,排列后的目标地址中所包括的端口号分散出现,所述预设规则包括第三预设计算公式、第四预设计算公式及第五预设计算公式,所述待扫描ip地址数组包括待扫描网段数组及待扫描主机数组,所述地址确定模块220具体用于:
[0147]
根据该扫描序号、所述待扫描网段数组、所述待扫描主机数组、所述待扫描端口数组及第三预设计算公式,确定出目标待扫描网段,其中,所述第三预设计算公式为:
[0148][0149]
其中,a表示所述待扫描网段数组,a[m]表示所述待扫描网段数组中第m+1个待扫描网段,i表示该扫描序号,x表示所述待扫描网段数组中包括的待扫描网段的数量,y2表示所述待扫描主机数组中包括的待扫描主机号的数量,z表示所述待扫描端口数组中包括的待扫描端口号的数量,lcm(x,y2*z)表示x与y2*z的最小公倍数,%表示取模;
[0150]
根据该扫描序号、所述待扫描主机数组、所述待扫描端口数组及第四预设计算公式,确定出目标待扫描主机号,其中,所述第四预设计算公式为:
[0151][0152]
其中,b2表示所述待扫描主机数组;
[0153]
根据该扫描序号、所述待扫描端口数组及第五预设计算公式,确定出所述目标待扫描端口号,其中,所述第五预设计算公式为:
[0154]
c[i%z]
[0155]
其中,c表示所述待扫描端口数组;
[0156]
根据所述目标待扫描网段、目标待扫描主机号及目标待扫描端口号确定该扫描序号对应的所述目标地址。
[0157]
可选地,在本实施例中,所述获得模块210还用于:预先对各数组各自对应的数据进行随机排序,并将排序结果作为测绘时使用的数组,其中,测绘时使用的数组包括所述待扫描ip地址数组及待扫描端口数组。
[0158]
可选地,上述模块可以软件或固件(firmware)的形式存储于图1所示的存储器110中或固化于网络设备100的操作系统(operating system,os)中,并可由图1中的处理器120执行。同时,执行上述模块所需的数据、程序的代码等可以存储在存储器110中。
[0159]
本申请实施例还提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的测绘方法。
[0160]
综上所述,本申请实施例提供了一种测绘方法、装置、网络设备及可读存储介质,在获得扫描任务后,针对各扫描序号,根据预设规则、该扫描序号、扫描任务中的待扫描ip地址数组及待扫描端口数组,确定该扫描序号对应的目标地址;并按照扫描序号由小到大的顺序,依次根据各扫描序号对应的目标地址发送扫描报文,以进行网络测绘。其中,该预设规则用于根据所有的扫描序号、待扫描ip地址数组及待扫描端口数组确定出不重复的全排列目标地址组,该目标地址组中的目标地址按照对应的扫描序号排列,排列后的目标地址中所包括的ip地址分散出现。由此,在测绘时,不会出现一定时间段内连续对某个ip地址进行扫描的情况,进而可避免被探测目标发现并屏蔽,保证网络测绘正常进行。
[0161]
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0162]
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0163]
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0164]
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1