Ich versuche, Cisco show ip interface vrf all
Befehl Ausgabe von TXT-Datei durch Lesen von Zeile für Zeile in Schleife zu analysieren.Kann Cisco CLI Befehl Ausgabe nicht korrekt analysieren
Die Ausgabe lautet:
IP Interface Status for VRF "default"
loopback1, Interface status: protocol-up/link-up/admin-up, iod: 212,
IP address: 10.1.0.1, IP subnet: 10.1.0.0/30
...
Ethernet1/1, Interface status: protocol-up/link-up/admin-up, iod: 278,
IP address: 10.0.0.1, IP subnet: 10.0.0.0/30
IP Interface Status for VRF "TEST"
Vlan99, Interface status: protocol-up/link-up/admin-up, iod: 147,
IP address: 172.16.0.1, IP subnet: 172.16.0.0/24
...
Vlan888, Interface status: protocol-up/link-up/admin-up, iod: 115,
IP address: 172.16.1.1, IP subnet: 172.16.1.0/24
...
Und so weiter.
Ich muss nur VRF extrahieren, die VLAN und Subnetz haben. Zum Beispiel dieser Ausgabe sollte ich Variablen in jeder Iteration:
vrf -> vlan -> subnet (TEST -> 99 -> 172.16.0.0/24)
vrf -> vlan -> subnet (TEST -> 888 -> 172.16.1.0/24)
Aber ich brauche keine Informationen aus default vrf
, weil sie keine VLans hat.
Ich schrieb einige reguläre Ausdrücke diese Informationen zu finden:
vrf = re.findall(r'VRF "(.*)"', line)
vlan = re.findall(r'Vlan(\d+)', line)
subnet= re.findall(r'IP address.*subnet:\s(.*)$', line)
Aber ich weiß nicht, wie VRFs ohne vlans zu ignorieren.
Was ist das Endergebnis, das Sie bekommen möchten? – nicael
Ich muss alle Vrfs und ihre Vlan-Nummern und Subnetze in mysql einfügen, während ich durch die Zeilen iteriere. – Jegor