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

一种配置信息解析方法、装置、电子设备及存储介质与流程

2023-01-15 08:39:57 来源:中国专利 TAG:
1.本发明涉及通信
技术领域
:,尤其涉及一种配置信息解析方法、装置、电子设备及存储介质。
背景技术
::2.为获取防火墙、交换机配置状态信息,可使用防火墙、交换机等网络设备提供的通讯接口。常用通讯接口有标准的简单网络管理协议(simplenetworkmanagementprotocol,snmp),超文本传输协议(hypertexttransferprotocol,http/https)协议,安全壳协议(secureshell,ssh)。其中,snmp协议依赖厂家公开管理信息库接口才能获取配置,受限于厂家的私有不公开的管理信息库,因此无法全面覆盖所有网络设备管理;http/https协议在电力监控系统生产控制大区为不安全的通讯协议,不允许使用;ssh协议则可自动登录设备并执行交互命令,获取配置信息,然而各厂家的ssh登录后,获取信息的命令和配置信息的格式不相同,因此无法使用一个通用的程序适配不同品牌的网络设备的ssh配置采集。技术实现要素:3.有鉴于此,本发明实施例提供一种配置信息解析方法、系统、电子设备及存储介质,能够依据新的网络设备交互方式和解析方式增加新的规则文件,而且规则文件可根据实际情况修改,增加了软件程序的可扩展性和可维护性。4.根据本发明的一方面,本发明实施例提供了一种配置信息解析方法,该方法包括:5.获取网络设备返回的原始文本信息;6.根据所述原始文本信息的属性参数确定预设规则文件集;7.根据所述预设规则文件集的解析规则解析所述原始文本信息的配置信息。8.根据本发明的另一方面,本发明实施例还提供了一种配置信息解析装置,该装置包括:9.信息获取模块,用于获取网络设备返回的原始文本信息;10.确定模块,用于根据所述原始文本信息的属性参数确定预设规则文件集;11.解析模块,用于根据所述预设规则文件集的解析规则解析所述原始文本信息的配置信息。12.根据本发明的另一方面,本发明实施例还提供了一种电子设备,所述电子设备包括:13.至少一个处理器;以及14.与所述至少一个处理器通信连接的存储器;其中,15.所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的配置信息解析方法。16.根据本发明的另一方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的配置信息解析方法。17.本发明实施例的上述技术方案,获取网络设备返回的原始文本信息,根据原始文本信息的属性参数确定预设规则文件集,根据预设规则文件集的解析规则解析原始文本信息的配置信息。本发明实施例,通过原始文本信息对应的属性参数,以确定预设规则文件集,并通过预设规则文件集的解析规则解析原始文本信息的配置信息,能够依据新的网络设备交互方式和解析方式增加新的规则文件,而且规则文件可根据实际情况修改,增加了软件程序的可扩展性和可维护性。18.应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。附图说明19.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。20.图1为本发明一实施例提供的一种配置信息解析方法的流程图;21.图2为本发明一实施例提供的另一种配置信息解析方法的流程图;22.图3为本发明一实施例提供的又一种配置信息解析方法的流程图;23.图4为本发明一实施例提供的一种配置信息解析装置的结构框图;24.图5为本发明一实施例提供的一种电子设备的结构示意图。具体实施方式25.为了使本
技术领域
:的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。26.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一、第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。27.在一实施例中,图1为本发明一实施例提供的一种配置信息解析方法的流程图,本实施例可适用于对网络设备的配置信息进行解析时的情况,该方法可以由配置信息解析装置来执行,该配置信息解析装置可以采用硬件和/或软件的形式实现,该配置信息解析装置可配置于电子设备中。28.如图1所示,该方法包括:29.s110、获取网络设备返回的原始文本信息。30.其中,网络设备包含但不限于防火墙、交换机等网络设备。原始文本信息可以理解为发送相应的配置命令从网络设备获取到的原始文本信息,该原始文本信息包括但不限于型号、品牌、设备类型,地址解析协议(addressresolutionprotocol,arp)表、介质访问控制(mediaaccesscontrol,mac)地址表、网络之间互连的协议配置表(internetprotocol,ip),端口配置表、路由表等。31.在本实施例中,可以向通过程序向网络设备发送相应的配置命令,以使网络设备在接收到对应的配置命令时,返回网络设备对应配置命令的原始文本信息。在一些实施例中,(secureshell,ssh)协议可自动登录网络设备并执行交互命令,在ssh协议登录上的情况下,读取预设规则文件中需要发送的配置命令,以向网络设备发送相应的配置命令给交换机,以使交换机接收相应的命令信息时,返回命令信息对应的原始文本信息,包括交换机的型号、品牌、设备类型,arp表、ip配置表等。示例性的,发送配置命令为displayvlan,获取到的是交换机vlan配置信息,可以包括vlanid、类型、描述信息、状态、统计开关状态、包含的接口以及这些接口的加入方式等;发送配置命令displaymodel,获取到的是交换机的型号、发送配置命令displayrode,对应对应获取到的是路由表信息。32.s120、根据原始文本信息的属性参数确定预设规则文件集。33.其中,属性参数可以理解为原始文本信息对应的网络设备的设备类型、设备型号、品牌、获取原始文本信息对应的配置命令等信息。预设规则文件集可以理解为预先设置的规则解析文件集,预设规则文件集可以依据用户需求进行相应的设定,可以在原有规则文件集的基础上进行相关规则文件的添加和/或减少。34.在本实施例中,预设规则文件集中可以包含网络设备对应的主要信息区以及组成至少一个子规则链的子规则,各子规则可用于匹配、解析相对应的输入字段信息。需要说明的是,各子规则链中的每个子规则均有相对应的字段信息,该字段信息至少包括下述之一:输入字段信息、匹配字段信息、下一解析字段信息、各解析结果对应的输出变量名称、各子规则对应的解析结果字段信息;本实施例中,网络设备对应的主要信息区可以包含网络设备对应的设备类型、品牌信息、型号信息、发送的配置命令、待解析文本信息对应的输出的变量信息、结构化信息结果。35.在本实施例中,可以通过读取预设规则文件集中对应的至少一个主要信息区的信息,将原始文本信息对应的网络设备的设备型号和获取原始文本信息对应的配置命令等信息,分别与各主要信息区的信息进行匹配,以将各主要信息区的信息与属性参数匹配成功的至少一个子规则,组成至少一个子规则链,并将组成的至少一个子规则链作为解析原始文本信息的预设规则文件集。36.s130、根据预设规则文件集的解析规则解析原始文本信息的配置信息。37.其中,解析规则可以理解为对原始文本信息对应的配置信息进行解析对应的规则。当然,解析规则可以包含一个子规则链进行解析,也可以包含多个子规则链进行解析,每一个子规则链中可以包含1个多个子规则。配置信息可以理解为各子规则链中各子规则所对应的解析结果。38.在本实施例中,网络设备返回相对应的原始文本信息,并确定相应的预设规则文件集,可以按照预设规则文件集中所组成的子规则链中,各子规则所对应的字段信息以对原始文本信息进行匹配,由此确定子规则链内至少一个组成子规则的解析结果,并将各解析结果合并为配置信息;需要说明的是,在根据预设规则文件集对原始文本信息进行解析时,由于原始文本信息对应的文本格式异构且复杂,一般需要使用多个子规则进行多次匹配解析,直到输出简单的字符内容,并将每个子规则对应的子结果进行组合。39.本发明实施例的上述技术方案,获取网络设备返回的原始文本信息,根据原始文本信息的属性参数确定预设规则文件集,根据预设规则文件集的解析规则解析原始文本信息的配置信息。本发明实施例,通过原始文本信息对应的属性参数,以确定预设规则文件集,并通过预设规则文件集的解析规则解析原始文本信息的配置信息,能够依据新的网络设备交互方式和解析方式增加新的规则文件,而且规则文件可根据实际情况修改,增加了软件程序的可扩展性和可维护性。40.在一实施例中,预设规则文件集包括至少一个子规则链和网络设备对应的主要信息区;41.其中,主要信息区至少包括下述之一:网络设备对应的设备类型、品牌信息、型号信息、发送的配置命令、待解析文本信息对应的输出的变量信息、结构化信息结果;42.预设规则文件集中至少包括一个子规则链,各子规则链中的各子规则对应的字段信息至少包括下述之一:输入字段信息、匹配字段信息、下一解析字段信息、各解析结果对应的输出变量名称、各子规则对应的解析结果字段信息。43.其中,子规则链可以理解为各子规则所组成的子规则链,子规则链中包含至少一个子规则,每个子规则可以通过下一解析字段信息进行相应的排序。示例性的,一个子规则链可以由子规则1至子规则6组成。结构化信息结果可以理解为至少一个子规则链所对应的总输出结果。44.在本实施例中,预设规则文件集中包含两个部分:一是:交换机对应的主要信息区,二是:至少一个子规则链。其中,主要信息区可以包含网络设备对应的设备类型、品牌信息、型号信息、发送的配置命令、待解析文本信息对应的输出的变量信息、结构化信息结果。示例性的,设备类型可以为交换机,也可以为防火墙;品牌可以为a品牌,b品牌等;型号信息可以为型号1、型号2等等;发送的配置命令包含但不限于vlan配置信息、ip配置信息;45.在本实施例中,各子规则包含以下字段信息,每个子规则均对应有以下字段信息中的至少一个,以协同完成原始文本信息的解析:输入字段信息、匹配字段信息、下一解析字段信息、各解析结果对应的输出变量名称、各子规则对应的解析结果字段信息。46.在本实施例中,输入字段信息可以表示子规则输入的原始文本信息或者下一子规则对应的输入字段信息,可以理解为,下一子规则对应的输入字段信息为上一个子规则对应的子解析结果信息,即可以是其他子规则匹配后输出的继续解析内容;匹配字段信息用于匹配输入字段信息,并且从中可以提取1个或多个匹配变量;下一解析字段信息可以理解为需要继续解析的内容,是匹配字段信息中解析的匹配变量,需要说明的是,下一解析字段信息在子规则中,可以存在,也可以不存在,若下一解析字段信息存在,则说明存在继续解析的文本信息,需要继续进行解析,若不存在,则说明该子规则无需再新建新的匹配内容,用于后续的规则匹配;47.在本实施例中,各子规则对应的解析结果字段信息可以理解为各子规则分别所对应的解析子结果,该该子结果可以为json字符串或一个输出变量,json字符串中可以包括match中的匹配变量,或一个输出变量,输出变量由后面的next的进行规则匹配后得出的outname集成;各解析结果对应的输出变量名称可以理解为各子规则对应输出的子结果分别所对应的输出变量名字,用于集成到上一层的outmsg中。48.需要说明的是,对于不同型号、版本和不同的品牌的网络设备,预设规则文件集一般是不同的,示例性的,现有不同型号、版本的交换机1和交换机2,获取交换机1和交换机2分别对应的vlan配置信息,此时,对于交换机1和交换机2分别所返回的vlan配置信息是不同的,格式也是不同的,此时,所对应的预设规则文件集也是不同的,交换机1对应的预设规则文件集中可以包含8个子规则,分别构成两个子规则链;交换机2对应的预设规则文件集中可以包含4个子规则,分别构成1个子规则链。49.在一实施例中,图2为本发明一实施例提供的另一种配置信息解析方法的流程图,本实施例在上述各实施例地基础上,对根据原始文本信息的属性参数确定预设规则文件集,以及根据预设规则文件集的解析规则解析原始文本信息的配置信息进行了进一步的细化,如图2所示,本实施例中的配置信息解析方法具体可以包含如下步骤:50.s210、获取网络设备返回的原始文本信息。51.s220、读取至少一个预设规则文件集对应的主要信息区。52.其中,主要信息区指的是预设规则文件集所对应网络设备的主要信息区。53.在本实施例中,读取至少一个预设规则文件集对应的主要信息区中的网络设备对应的设备类型、品牌信息、型号信息、发送的配置命令、待解析文本信息对应的输出的变量信息、结构化信息结果等信息。54.s230、将属性参数内的设备型号以及配置命令与各主要信息区的信息进行匹配。55.在本实施例中,读取原始文本信息中的设备型号以及配置命令,将原始文本信息中的设备型号以及配置命令,与各主要信息区的型号信息、发送的配置命令进行匹配,以依据匹配结果做出不同的操作。示例性,设备型号为s5700,对应的配置命令为displayvlan,表示获取交换机vlan配置信息命令,将该设备型号和配置命令与预设规则文件集对应的主要信息区中定义的型号信息、发送的配置命令进行匹配。56.s240、将主要信息区的信息与属性参数匹配成功的预设规则文件集作为解析原始文本信息的预设规则文件集。57.在本实施例中,将原始文本信息中的设备型号以及配置命令与预设规则文件集对应的主要信息区中定义的设备型号信息和发送的配置命令进行匹配,在匹配成功的情况下,将预设规则文件集作为解析原始文本信息的预设规则文件集,依据配置命令获取相对应的原始文本信息,并依据解析原始文本信息的预设规则文件集进行解析原始文本信息。58.示例性的,设备型号为s5700型号a×,对应的配置命令为displayvlan,将其与原始文本信息中的设备型号以及配置命令进行匹配,displayvlan命令获取的原始文本信息为两张表格,一是vlan关联的网口表;二是vlan状态表,此时匹配成功的预设规则文件集包含子规则1至子规则8,包含两个子规则链,用子规则链1中的子规则1至子规则6进行解析vlan关联的网口表,用子规则7和子规则8解析vlan状态表。59.s250、按照子规则链对原始文本信息进行匹配以确定子规则链内至少一个组成子规则的解析结果。60.其中,解析结果可以理解为每一个子规则对输入字段信息进行解析时所对应的子解析结果,可以是json字符串或一个输出变量。示例性的,子规则1对应的解析结果为子结果1,子规则2对应的解析结果为子结果2等等,本实施例在此不做限制。需要说明的是,每个子规则对应的解析结果可以为1个解析结果,可以包含多个解析结果。示例性的,子规则1中从vlanporttablestr匹配到1个结果,规则2中从vlanporttablestr共匹配到12个结果。61.在本实施例中,可以按照子规则链对原始文本信息进行匹配以确定子规则链内至少一个组成子规则的解析结果。具体的,可以通过确定子规则链的第一组成子规则作为当前组成子规则以及将原始文本信息作为解析文本,将当前组成子规则的匹配字段信息与解析文本采用正则表达式进行匹配,以确定解析结果并将解析结果记为新的解析文本,按照当前组成子规则的下一解析字段信息在子规则链内查找第二组成子规则,若获取到第二组成子规则,则将第二组成子规则作为当前组成子规则继续确定解析结果,若未获取到第二组成子规则,则确定子规则链完成匹配。可以理解为,确定子规则链对应的至少一个子规则,将原始文本信息输入至子规则链中,并通过各子规则中对应的下一解析字段信息确定子规则链的连接顺序,将处于头部的子规则作为子规则链的第一个子规则,若第一个子规则中存在下一解析字段信息,则表示存在下一待解析文本信息,保存第一个子规则解析的解析结果,并将下一待解析文本信息作为下一子规则的输入字段信息,继续采用正则表达式对输入字段信息进行匹配,直至下一待解析文本信息中不再产生新的输出变量或下一解析字段信息不存在的情况下,子规则链解析完成,并将各子规则对应的解析结果进行拼接。62.在一些实施例中,组成子规则中对应的字段信息至少包括下述之一:输入字段信息、匹配字段信息、下一解析字段信息、各解析结果对应的输出变量名称、各子规则对应的解析结果字段信息。63.在一实施例中,按照子规则链对原始文本信息进行匹配以确定所述子规则链内至少一个组成子规则的解析结果,包括:64.确定子规则链的第一组成子规则作为当前组成子规则以及将原始文本信息作为解析文本,其中,第一组成子规则位于子规则链的头部;65.将当前组成子规则的匹配字段信息与解析文本进行匹配以确定解析结果并将解析结果记为新的解析文本,其中,匹配字段信息包括正则表达式;66.按照当前组成子规则的下一解析字段信息在子规则链内查找第二组成子规则;67.若获取到第二组成子规则,则将第二组成子规则作为当前组成子规则继续确定解析结果;68.若未获取到第二组成子规则,则确定子规则链完成匹配。69.其中,第一组成子规则指的是子规则链中的第一个子规则。第二组成子规则可以理解为子规则链中出去第一组成子规则之外的子规则。70.在本实施例中,第一组成子规则位于子规则链的头部,依据第一组成子规则的输入字段信息,也即原始文本信息与第一组成子规则的匹配字段信息进行匹配,获取匹配变量,若第一组成子规则中包含下一解析字段信息,则表示存在第二组成子规则,将第一组成子规则中的下一解析字段信息作为第二组成子规则中的输入字段信息,并将第二组成子规则作为当前组成子规则,继续进行子规则匹配,若第一组成子规则中不包含下一解析字段信息,则表示不存在第二组成子规则,确定子规则链完成匹配。71.需要说明的是,在下一解析字段信息进行多次匹配时,每次包含的字段信息是不一样的,可以理解为,采用正则表达式进行输入字段信息的匹配时,每次包含的字段信息是不一样的。示例性的,子规则1进行匹配时,match包含的主要字段有vid标识、(type)类型、(ports)网口,子规则2进行匹配时,match包含的主要字段有vid标识和portsstr(网口字符串)。72.示例性的,子规则1:从原始文本信息中匹配出vlanporttable表字符串,子规则1可以表示为:in:raw;match包含的主要字段有vid标识、(type)类型、(ports)网口以及匹配变量vlanporttablestr;next:vlanporttablestr;outname:vlanporttable;outmsg:[]!{vlanporttablerow}];本实施例中,next是vlanporttablestr,表示后续用匹配变量vlanporttablestr继续匹配规则,获取新的输出;outname:vlanporttable,表示结果变量vlanporttable使用子规则1的outmsg赋值;同时该结果变量vlanporttable用于上一个主要信息区中sql语句的使用变量;outmsg:[!{vlanporttablerow}],表示输出结果由结果变量vlanporttablerow组成的数组。子规则2的输入内容为子规则1的next内容。子规则2:从vlanporttablestr字符串中匹配各行vlan配置的内容。in:vlanporttablestr;match包含的主要字段有vid标识和portsstr(网口字符串);next;portsstr;outname:vlanporttablerow;outmsg:{“vid”:${vid},”ports”:[!{portitem}]};next,下一次操作需要处理的字符串,内容是portstr;上面匹配了12个结果,则后续进行12个portstr的规则匹配,outname,outmsg:子规则2输出变量名称,此时上一个规则的输出变量vlanporttable内容如下:[0073][vlanporttablerow1,vlanporttablerow2,vlanporttablerow3…,vlanporttablerow12];[0074]outmsg:{"vid":${vid},"ports":[!{portitem}]},子规则2匹配输出的结果内容,包含vid,ports,其中portitem是输出变量,由下一次对portstr的匹配后再生成portitem输出变量的内容后重新替换;此时vlanporttable内容2如下:[0075][{“vid”:1,“ports”:[z规则2.1.!{portitem}]},{“vid”:10,“ports”:[规则2.2.!{portitem}]},…,{“vid”:100,“ports”:[子规则2.12.!{portitem}]}][0076]s260、将各解析结果合并为配置信息。[0077]在本实施例中,一个或多个子规则分别对应的解析结果需要按解析的顺序将下一子规则对应的子解析结果拼接至上一子规则对应的子解析结果中,各子规则链中的各子规则分别对应的解析结果需要进行合并,以进行配置信息解析结果的结构化输出。需要说明的是,由于子规则链可能为一个,也可能为多个,且各子规则链中的子规则问阿金的个数可能为一个,也可能为多个,在进行各解析结果的合并时,需要考虑多个因素。[0078]在本实施例中,若原始文本信息所对应的子规则链的个数为1个,且该子规则中包含一个或多个解析结果,则可以各解析结果按照子规则链内对应组成子规则的先后执行顺序,依次合并子规则所对应的解析结果,并将该合并后的解析结果作为解析后的结构化配置信息;若原始文本信息所对应的子规则链的个数为两个或两个以上,且该子规则中包含一个或多个解析结果,则可以通过各子规则链分别对应的标识号和预设规则文件集内的预设结构化查询语句,将各子规则链对应的解析结果进行拼接,以将拼接后的解析结果作为原始文本信息对应的结构化配置信息。[0079]在一实施例中,将各解析结果合并为配置信息,包括:[0080]在子规则链数量为一个的情况下,将各解析结果按照所述子规则链内对应组成子规则的先后执行顺序依次合并为所述配置信息;[0081]在所述子规则链数量为至少两个的情况下,确定各所述子规则链分别对应的标识号,依据所述标识号和所述预设规则文件集内的预设结构化查询语句将各所述子规则链对应的所述解析结果拼接为所述配置信息。[0082]在本实施例中,在子规则链数量为一个的情况下,可以通过将各解析结果,按照子规则链内对应组成子规则的先后执行顺序依次合并为配置信息;可以理解为,将子规则链内对应组成子规则中,从第一子规则开始,本次子规则对应的解析结果需要合并至上次子规则对应的解析结果中。示例性的,a品牌某型号的交换机对应的原始文本信息为一张vlanporttable表,该vlanporttable表需要一个子规则链进行解析操作,该子规则链中包含子规则1至子规则2,从子规则1中的输入字段信息开始采用正则表达式进行匹配解析,子规则1对应的解析结果为结果变量vlanporttablerow组成的数组,子规则1对应的下一解析字段信息为vlanporttablestr,由子规则1的下一解析字段信息作为子规则2的输入,并将该输入字段信息采用正则表达式进行匹配解析,使用正则表达式进行解析时,没有下一解析字段信息了,说明到子规则2就已经解析完了,会把子规则2对应的解析结果,拼回到子规则1中,形成闭环。[0083]在本实施例中,在子规则链数量为至少两个的情况下,确定各子规则链分别对应的标识号,依据标识号和预设规则文件集内的预设结构化查询语句将各子规则链对应的解析结果拼接为配置信息。需要说明的是标识号为同一网络设备所对应的唯一标识号。示例性的,b品牌某型号的交换机对应的原始文本信息为两张表:vlanporttable表和vlanstatustable表,使用子规则1至子规则4解析vlanporttable表,使用子规则5至子规则6解析vlanstatustable表,子规则1至子规则4均对应相应的子结果,将各子结果回填至子规则1中,形成第一结果;子规则5至子规则6也均有相对应的子结果,将各子结果回填到子规则5,形成第二结果,然后使用vlan唯一标识号和结构化查询语句将第一结果和第二结果进行拼接,以形成原始文本信息对应的最终结构化信息结果,即结构化配置信息。[0084]本发明实施例的上述技术方案,通过将主要信息区的信息与属性参数匹配成功的预设规则文件集作为解析原始文本信息的预设规则文件集,按照子规则链对原始文本信息进行匹配以确定子规则链内至少一个组成子规则的解析结果,将各解析结果合并为配置信息,可依据实际情况修改根据新的设备交互方式和解析方式增加新的规则,无需写死在主体采集程序中,增加了软件程序的可扩展性和可维护性。[0085]在一实施例中,为便于更好的理解配置信息解析方法,图3为本发明一实施例提供的又一种配置信息解析方法的流程图,图3可以作为一个优选实施例对一种配置信息解析方法进行说明。本实施例中的next字段信息表示上述实施例中的下一解析字段信息。[0086]如图3所示,本实施例中的配置信息解析方法具体可以包含如下步骤:[0087]s310、根据网络设备的设备型号和配置命令在预设规则文件中遍历查找相匹配的规则文件。[0088]s320、使用规则文件中的对应的字段信息,发送匹配的ssh命令至网络设备。[0089]s330、获取网络设备返回的原始文本信息。[0090]s340、根据原始文本信息的属性参数确定预设规则文件集。[0091]s350、确定预设规则文件集中解析的当前子规则匹配方式,并依据当前子规则对应的字段信息以输出新的待解析下一文本信息以及当前子规则对应的子解析结果。[0092]s360、若当前子规则对应的字段信息中包含next字段信息,则说明存在新的待解析下一文本信息,则使用新的子规则匹配方式进行解析待解析下一文本信息。[0093]s370、判断待解析下一文本信息是否解析完成,若解析完成,则执行s480,若否,则返回执行使用新的子规则匹配方式进行解析待解析下一文本信息。[0094]s380、将子规则对应的各解析结果合并为结构化信息结果进行输出。[0095]在一实施例中,为便于更好的理解配置信息解析方法,本实施例以网络设备的设备类型为交换机、品牌信息为××品牌、型号为ccc型号、命令配置信息为displayvlan为例进行说明。本实施例中的in:输入内容表示上述实施例中的输入信息字段,match:正则表达式表示上述实施例中的匹配字段信息、next:继续解析的内容表示上述实施例中的下一解析字段信息,outmsg:本次输出的子结果表示上述实施例中的当前组成子规则所对应的解析结果,outname:本次输出的子结果对应的输出变量名字表示上述实施例中的所述子规则对应的解析结果字段信息本实施例中的,原始命令结果内容表示上述实施例中的原始文本信息。[0096]在本实施例中,预先设置对应交换机的预设规则文件集,预设规则文件集中包含两个部分:一是:交换机对应的主要信息区,二是:待解析内容对应的规则集。其中,交换机对应的主要信息区主要包括:规则匹配对应设备类型、品牌、型号、发送的配置命令、规则文件输出的vlanporttable表和vlanstatustable表的变量名称、最后结构化结果的输出操作;待解析内容对应的规则集包含:子规则1、子规则2、子规则3、子规则4、子规则5、子规则6、子规则7、子规则8;需要说明的是,子规则集中的子规则可以根据实际的解析方法由用户进行相应的编写。[0097]在本实施例中,每个子规则有以下字段,协同完成内容解析:in:输入内容,可是raw表示原始文本信息,即发送执行命令后网络设备返回的内容;可以是其他规则匹配后输出的继续解析内容,每个规则中该字段必填;match:正则表达式,用于匹配in,并且提取1个或多个匹配变量,每个规则中该字段必填;next:继续解析的内容,是match中解析的匹配变量,每个规则中该字段选填,没有next的字段,说明该规则无需再新建新的匹配内容,用于后续的规则匹配;outmsg:本次输出的子结果,是json字符串或一个输出变量;json字符串中可以包括match中的匹配变量,或一个输出变量,输出变量由后面的next的进行规则匹配后得出的outname集成,内容outname对应的outmsg,每个规则中该字段必填;outname:本次输出的子结果对应的输出变量名字,用于集成到上一层的outmsg中。[0098]具体的,本实施例中的配置信息解析方法,包含以下步骤:[0099]a1、采集××品牌交换机的vlan信息,发送配置命令displayvlan。[0100]a2、××品牌交换机返回的原始文本信息包含vlanporttable(vlan网口表)、vlanstatustable(vlan状态表)。[0101]在本实施例中,一个命令displayvlan返回内容中有2个表格组成。第1个表是vlan关联的网口表(显示vlanid对应的网口),第2个是vlan状态表(显示vlan的状态是开启还是关闭),两表根据vid关联。[0102]a3、设置网络设备对应的主要信息区配置。[0103]在本实施例中,根据命令displayvlan,交换机对应的主要信息区配置如下:设备类型devtype:交换机;品牌brand:a品牌;型号models:5700;发送命令:displayvlan;in(vlanporttable表和vlanstatustable表名称),分别是vlanporttable和vlanstatustable,两个输出变量。两个输出变量的具体内容outmsg由下文中其他的规则匹配生成。输出操作outop(用于最后结果的输出操作,一个sql语句,根据vid进行外联vlanporttable和vlanstatustable两个表。[0104]a4、确定待解析内容的规则集,并依据待解析内容的规则集以对输入内容进行多次匹配规则,以得到相对应的子解析结果,并将子解析结果进行组装并输出。[0105]在本实施例中,预设规则文件集中的子规则1至子规则6用于解析vlanporttable(vlan网口表),子规则7至子规则8用于解析vlanstatustable(vlan状态表)。[0106]子规则1:从原始文本信息中匹配出vlanporttable表字符串,子规则1对应的字段信息为:输入字段信息用in表示、匹配字段信息用match表示、下一解析字段信息用next表示、子规则1解析结果对应的输出变量名称用outname表示、子规则1对应的解析结果字段信息用outmsg表示。子规则1可以表示为:in:raw;match包含的主要字段有vid标识、(type)类型、(ports)网口以及匹配变量vlanporttablestr;next:vlanporttablestr;outname:vlanporttable;outmsg:[]!{vlanporttablerow}];本实施例中,使用match正则表达式匹配出原始文本信息中的vid标识、(type)类型、(ports)网口,获取匹配变量vlanporttablestr,vlanporttablestr只匹配到1个结果。next赋值是vlanporttablestr,表示后续用匹配变量vlanporttablestr继续匹配规则,获取新的输出;outname:vlanporttable,表示结果变量vlanporttable使用本规则的outmsg赋值;同时,该结果变量vlanporttable用于上一个主要信息区中sql语句的使用变量;outmsg:[!{vlanporttablerow}],表示输出结果由结果变量vlanporttablerow组成的数组。vlanporttablerow结果变量的内容由后续的next内容继续继续规则匹配中产生。[0107]在本实施例中,子规则2的输入内容为子规则1的next内容。[0108]子规则2:从vlanporttablestr字符串中匹配各行vlan配置的内容。in:vlanporttablestr;match包含的主要字段有vid标识和portsstr(网口字符串);next:portsstr;outname:vlanporttablerow;outmsg:{“vid”:${vid},”ports”:[!{portitem}]};其中,输入的是vlanporttablestr,是子规则1中next中的内容;match是正则表达式,根据输入内容进行匹配,匹配内容是匹配成功则根据正则表达式,提取了vid和portstr;从vlanporttablestr共匹配到12个结果;每个结果中,vid结果前面的数字,portstr内容是每个结果common后面的内容;由于匹配到12个结果,则此时next,outname,outmsg有12个不同的数值;next,标识下一次操作需要处理的字符串,内容是portstr;上面匹配了12个结果,则后续进行12个portstr的规则匹配,outname,标识本次的outmsg的输出变量名称,这里outname是vlanporttablerow,表示会把上一次匹配输出根据该变量名称进行匹配替换;上一次输出15行outmsg:[!{vlanporttablerow}],这次匹配12个结果,会根据vlanporttablerow这个名字把本次匹配输出的12个结果outmsg放在15行outmsg:[!{vlanporttablerow}]中;此时上一个规则的输出变量vlanporttable内容如下:[vlanporttablerow1,vlanporttablerow2,vlanporttablerow3…,vlanporttablerow12];outmsg:{"vid":${vid},"ports":[!{portitem}]},本次规则匹配输出的结果内容,包含vid,ports,其中portitem是输出变量,由下一次对portstr的匹配后再生成portitem输出变量的内容后重新替换;此时vlanporttable内容2如下:[0109][{“vid”:1,“ports”:[z规则2.1.!{portitem}]},{“vid”:10,“ports”:[规则2.2.!{portitem}]},…,{“vid”:100,“ports”:[z规则2.12.!{portitem}]}][0110]子规则3:从portsstr中获取ut类型的字符串。portsstr有两种类型,一种是untagged,使用‘ut:xxxxxx’方式表达;另外一种是tagged类型,使用使用‘gt:xxxxxx’:方式表达;子规则3:获取untagged类型的port字符串,子规则4:获取tagged类型的port字符串;in:portsstr;match:匹配ut类型的字符串(utportstr);next:utportstr;outmsg:!{portitem};outname:portitem;规则匹配输入portstr,portstr是上一条规则2的输出内容;正则表达式,用于匹配portstr中ut:后面的内容,匹配变量是utportstr;utportstr匹配1个结果,为ut:后面的字符串;next:utportstr,标识下次匹配是匹配的utportstr字符串结果;outmsg,使用结果变量utportitem,该变量再后续匹配生成;outname:portitem,表示本次规则的匹配结果outmsg赋值给portitem;[0111]匹配后,vlanporttable内容3是:[0112][{“vid”:1,“ports”:[规则2.1.!{utportitem},…,规则2.1.!{portitem}]},{“vid”:10,“ports”:[规则2.2.!{utportitem},…,规则2.1.!{portitem}]},…,{“vid”:100,“ports”:[规则2.12.!{utportitem},…,规则2.1.!{portitem}]}]。[0113]规则4:从utportstr中获取utportitem,in:utportstr;match:匹配portname,portstatus;outmsg:{“portname”:${portname},“portstatus”:${portstatus},“porttype”:”untagged”};outname:utportitem;这条规则没有next,说明最条规则是最终的格式匹配;输入时utportstr,是规则3中的next;正则表达式匹配,获取匹配变量portname和portstatus,[0114]输出变量内容:json格式的字符,包含匹配变量;输出变量名字,替换上文中的输出变量utportitem,匹配后,vlanporttable内容4是:{“vid”:1,”ports”:[{“portname”:“ge1/0/1,”“portstatus”:“u”,“porttype”:“untagged”},…,{“portname”:“ge1/0/48”“portstatus”:“d”,“porttype”:“untagged”},规则2.1!{portitem}]…}[0115]同理,同理,使用规则5,规则6获取tgport的信息;[0116]规则5:从portsstr中获取tg类型的字符串tgportsstr,该规则匹配输入portsstr,是规则2中的next的内容;匹配输出tg:后面的字符串;匹配变量tgportsstr;下一次匹配,内容是tgportsstr;输出内容是tgportitem,由后续的正则表达式匹配后再补充;输出变量名称是portitem,用于把tgportitem填入规则2的outmsg中的portitem中;匹配后,vlanporttable内容5是:{“vid”:1,“ports”:[{“portname”:“ge1/0/1”,“portstatus”:“u”,“porttype”:“vid-untagged”},…,{“portname”:“ge1/0/48”,“portstatus””:“d”,“porttype””:“untagged”},规则2.1!{tgportitem}]…}[0117]规则6:从tgportsstr中获取tgportitem,这条规则没有next,说明最条规则是最终的格式匹配;输入时tgportstr,是规则5中的next;正则表达式匹配,获取匹配变量portname和portstatus;输出变量内容:json格式的字符,包含匹配变量;输出变量名字,替换上文中的输出变量tgportitem,匹配后,vlanporttable内容6是:[0118]{“vid”:1,“ports”:[{“portname”:“ge1/0/1”,”“portstatus”:“u”,“porttype”:“untagged”},…,{“portname”:“ge1/0/48”,“portstatus”:“d”,“porttype”:“untagged”}…}[0119]将规则1值规则6对应的子结果进行集成,组成第一结果。[0120]规则7:从原始命令结果内容中匹配出vlanstatustable表字符串,in输入匹配原始命令结果,正则表达式匹配,匹配变量是vlanstatustablestr,输出next是vlanstatustablestr,outname是vlanstatustable,用于上面主要信息区中sql语句的使用变量;输出结果的格式,使用[]数组表示;[0121]匹配后vlanstatustable内容是:[vlanstatustalebow1,…][0122]规则8:从vlanstatustablestr字符串中匹配各行vlan状态的内容,由于该规则没有next,所以是最后一个匹配规则,没有后续匹配;输入是vlanstatustablestr,正则表达式匹配vlanstatustablestr中的vid,状态,描述;[0123]可以匹配到12个结果;outname是vlanstatustablerow,故vlanstatustable内容1是:[0124][vlanstatustalebow1,…vlanstatustalebow12],outmsg输出jso格式字符串。json内使用本次匹配的变量vid,status,description;匹配后vlanstatustable内容2是:[{“vid”:1,“status”:“enable”,“desciption”:”vlan0001”},…,{“vid”:1000,“status”:“enable”,“desciption”:“1ds”}][0125]通过上述规则完成vlanstatustable的解析.将vlanstatustable内容2集成到vlanstatustable内容1中,形成规则7和规则8对应的第二结果;[0126]将第一结果和第二结果通过vid的id标识,以及设置的sql语句,将第一结果和第二结果放在一起,性总的结果进行输出。[0127]在一实施例中,图4为本发明一实施例提供的一种配置信息解析装置的结构框图,该装置适用于对网络设备的配置信息进行解析时的情况,该装置可以由硬件/软件实现。可配置于电子设备中来实现本发明实施例中的一种配置信息解析方法。如图4所示,该装置包括:信息获取模块410、确定模块420、解析模块430。[0128]其中,信息获取模块410,用于获取网络设备返回的原始文本信息;[0129]确定模块420,用于根据所述原始文本信息的属性参数确定预设规则文件集;[0130]解析模块430,用于根据所述预设规则文件集的解析规则解析所述原始文本信息的配置信息。[0131]本发明实施例,确定模块,通过原始文本信息对应的属性参数,以确定预设规则文件集,解析模块,通过预设规则文件集的解析规则解析原始文本信息的配置信息,能够依据新的网络设备交互方式和解析方式增加新的规则文件,而且规则文件可根据实际情况修改,增加了软件程序的可扩展性和可维护性[0132]在一实施例中,确定模块420,包括;[0133]信息读取单元,用于读取至少一个所述预设规则文件集对应的主要信息区;[0134]匹配单元,用于将所述属性参数内的设备型号以及配置命令与各所述主要信息区的信息进行匹配;[0135]解析文件确定单元,用于将所述主要信息区的信息与所述属性参数匹配成功的所述预设规则文件集作为解析所述原始文本信息的所述预设规则文件集。[0136]在一实施例中,所述解析规则包括至少一个子规则链,解析模块430,包括:[0137]结果确定单元,用于按照所述子规则链对所述原始文本信息进行匹配以确定所述子规则链内至少一个组成子规则的解析结果;[0138]合并单元,用于将各所述解析结果合并为所述配置信息。[0139]在一实施例中,所述组成子规则中对应的字段信息至少包括下述之一:[0140]输入字段信息、匹配字段信息、下一解析字段信息、各所述解析结果对应的输出变量名称、各所述子规则对应的解析结果字段信息。[0141]在一实施例中,结果确定单元,包括:[0142]第一文本确定子单元,用于确定所述子规则链的第一组成子规则作为当前组成子规则以及将所述原始文本信息作为解析文本,其中,所述第一组成子规则位于所述子规则链的头部;[0143]结果确定子单元,用于将所述当前组成子规则的匹配字段信息与所述解析文本进行匹配以确定所述解析结果并将所述解析结果记为新的所述解析文本,其中,所述匹配字段信息包括正则表达式;[0144]规则查找子单元,用于按照所述当前组成子规则的下一解析字段信息在所述子规则链内查找第二组成子规则;[0145]结果确定子单元,用于若获取到所述第二组成子规则,则将所述第二组成子规则作为所述当前组成子规则继续确定所述解析结果;[0146]确定子单元,用于若未获取到所述第二组成子规则,则确定所述子规则链完成匹配。[0147]在一实施例中,合并单元,包括:[0148]第一合并子单元,用于在所述子规则链数量为一个的情况下,将各所述解析结果按照所述子规则链内对应所述组成子规则的先后执行顺序依次合并为所述配置信息;[0149]第二合并子单元,用于在所述子规则链数量为至少两个的情况下,确定各所述子规则链分别对应的标识号,依据所述标识号和所述预设规则文件集内的预设结构化查询语句将各所述子规则链对应的所述解析结果拼接为所述配置信息。[0150]在一实施例中,[0151]所述预设规则文件集包括至少一个子规则链和所述网络设备对应的主要信息区;[0152]其中,所述主要信息区至少包括下述之一:所述网络设备对应的设备类型、品牌信息、型号信息、发送的配置命令、待解析文本信息对应的输出的变量信息、结构化信息结果;[0153]所述预设规则文件集中至少包括一个子规则链,各所述子规则链中的各子规则对应的字段信息至少包括下述之一:输入字段信息、匹配字段信息、下一解析字段信息、各所述解析结果对应的输出变量名称、各所述子规则对应的解析结果字段信息。[0154]本发明实施例所提供的配置信息解析装置可执行本发明任意实施例所提供的配置信息解析方法,具备执行方法相应的功能模块和有益效果。[0155]在一实施例中,图5为本发明一实施例提供的一种电子设备的结构示意图。电子设备10旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。[0156]如图5所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(rom)12、随机访问存储器(ram)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(rom)12中的计算机程序或者从存储单元18加载到随机访问存储器(ram)13中的计算机程序,来执行各种适当的动作和处理。在ram13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、rom12以及ram13通过总线14彼此相连。输入/输出(i/o)接口15也连接至总线14。[0157]电子设备10中的多个部件连接至i/o接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。[0158]处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如配置信息解析方法。[0159]在一些实施例中,配置信息解析方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由rom12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到ram13并由处理器11执行时,可以执行上文描述的配置信息解析方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行配置信息解析方法。[0160]本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。[0161]用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程配置信息解析装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。[0162]在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。[0163]为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。[0164]可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、区块链网络和互联网。[0165]计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。[0166]应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。[0167]上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。当前第1页12当前第1页12
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献