CiscoConfParse で Cisco IOS のコンフィグを解析し、IP アドレスなどの情報を抽出するサンプルをメモしておきます。 CiscoConfParse は 1.7.24 を使いました。
サンプルコード
#!/usr/bin/env python3
from ciscoconfparse import CiscoConfParse
CONFIG = """!
interface GigabitEthernet0/1
ip address 172.16.1.1 255.255.255.0
ip helper-address global 10.1.1.1
ip helper-address 10.1.1.2
ip helper-address vrf FOO 10.1.1.3
standby 5 ip 172.16.1.254
standby 5 priority 105
standby 5 preempt
"""
parse = CiscoConfParse(CONFIG.splitlines(), syntax='ios', factory=True)
intf = parse.find_objects('^interface\sGigabitEthernet0/1')[0]
print("Address : " + intf.ipv4_addr)
print("Netmask : " + intf.ipv4_netmask)
print("Mask Length : " + str(intf.ipv4_masklength))
for helper in intf.ip_helper_addresses:
print("IP Helper : " + helper["addr"])
print("HSRP Group : " + str(intf.hsrp_group))
print("HSRP Address : " + intf.hsrp_ip_addr)
print("HSRP Priority : " + str(intf.hsrp_priority))
実行例
$ python3 sample.py
Address : 172.16.1.1
Netmask : 255.255.255.0
Mask Length : 24
IP Helper : 10.1.1.1
IP Helper : 10.1.1.2
IP Helper : 10.1.1.3
HSRP Group : 5
HSRP Address : 172.16.1.254
HSRP Priority : 105
コメント