CiscoConfParse でインターフェイス情報を抽出する

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

コメント

タイトルとURLをコピーしました