下面是我的示例conf文件,我想要解析接口详细信息,如接口名称、描述、vlan类型、qos策略、ip地址,还希望通过接口ip地址识别WAN ip池。
接口Aux0/0/1
链路协议ppp
撤消关机
接口Eth-Trunk1
DEL-CON-S5328EI-SW-A5 Eth-Trunk2说明
模式lacp-静态
lacp抢占启用
最大活动链路数1
lacp抢占延迟10
统计启用
接口Eth-Trunk1.50
统计启用
接口Eth-Trunk1.120
VLAN型dot1q 120
说明EXT_COGENT E服务专用LIMITED_12005744750_50MB
ip地址111.93.43.217 255.255.255.252
流量-策略基础设施-ACL入站
qos-配置文件50 50Mbps入站标识符无
qos-配置文件50 50Mbps出站标识符无
统计启用
接口Eth-Trunk1.123
VLAN型dot1q 123
说明EXT_ILL_SARALA手工艺品_PANIPAT_5018027739
ip地址182.156.211.161 255.255.255.252
流量-策略基础设施-ACL入站
用户队列循环10240 pir 10400入站
用户队列循环10240 pir 10400出站
统计启用
ip route-static 111.93.39.244 255.255.255.252 Eth-Trunk1.123 182.156.211.162说明SARALA-HANDICRAFTS_5018027739
发布于 2019-02-09 15:42:49
示例代码,但是不能正确打印输出
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/新德里/30 30Mbps/以太网‘,'description':'','IP':''}
{'name':'description EXT/ILL/782226/NYT新闻局印度私有有限公司/1105782226/新德里/以太网‘,'description':'','IP':''}
{'name':'description EXT/ILL/784459/DYNAMIC DRILLING AND SERVICES PRIVATE LIMITED/1105784459/ 16 Mbps/New Delhi/Ethernet','description':'','IP':''}
请建议更改
https://stackoverflow.com/questions/54603493
复制相似问题