下面是我的示例conf文件,我想解析接口详细信息,例如接口名称,描述,VLAN类型,qos策略,IP地址,还想通过接口IP地址标识WAN IP池。
接口Aux0 / 0/1
链接协议ppp
撤消shutdown
接口Eth-Trunk1
对DEL-CON-S5328EI-SW-A5 Eth-Trunk2的描述
模式lacp-static
lacp抢先启用
最大活动链接数1
lacp抢占延迟10
统计启用
接口Eth-Trunk1.50
统计启用
#
接口Eth-Trunk1.120
vlan型dot1q 120
说明EXT_COGENT E SERVICES PRIVATE LIMITED_12005744750_50MB
ip地址111.93.43.217 255.255.255.252
流量策略INFRA-ACL入站
qos-profile 50Mbps入站标识符无
qos-profile 50Mbps出站标识符无
统计启用
接口Eth-Trunk1.123
vlan型dot1q 123
说明EXT_ILL_SARALA-HANDICRAFTS_PANIPAT_5018027739
ip地址182.156.211.161 255.255.255.252
流量策略INFRA-ACL入站
用户队列cir 10240 pir 10400入站
用户队列cir 10240 pir 10400出站
统计启用
ip route-static 111.93.39.244 255.255.255.252 Eth-Trunk1.123 182.156.211.162说明SARALA-HANDICRAFTS_5018027739
答案 0 :(得分:0)
示例代码,但是无法正确打印输出
from ciscoconfparse import CiscoConfParse
from pprint import pprint
parse = CiscoConfParse("huwaieconf.txt")
allInterfaces = {}
interfaces = {}
intfs = parse.find_objects_w_parents(r'^interface',r'Eth')
for intfobj in intfs:
intf_name = intfobj.text.strip()
#print (intf_name)
interfaces.update({'name': intf_name})
descr = intfobj.re_match_iter_typed((r" description "), group=1)
interfaces.update({'description': descr})
ip_addr = intfobj.re_match_iter_typed((r"ip\saddress\s(\S+\s+\S+)"),group=1)
interfaces.update({'IP':ip_addr})
print (interfaces)
{'name':'description EXT / ILL / 784395 / INVESTOPAD / 12405784395 / New Delhi / 30Mbps / Ethernet','description':'','IP':''}
{'name':'description EXT / ILL / 782226 / NYT NEWS BUREAU印度私人有限公司/ 1105782226 / New Delhi / Ethernet','description':','IP':'}}
{'name':'description EXT / ILL / 784459 / DYNAMIC Drilling and Services PRIVATE LIMITED / 1105784459/16 Mbps / New Delhi / Ethernet','description':','IP':”}
< / p>
请建议更改