-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcisco_netconf_demo.py
More file actions
61 lines (49 loc) · 1.8 KB
/
Copy pathcisco_netconf_demo.py
File metadata and controls
61 lines (49 loc) · 1.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import xmltodict
from ncclient import manager
device = {
"host": "ios-xe-mgmt.cisco.com",
"port": 10000,
"username": "developer",
"password": "C1sco12345"
}
def get_capabilities():
with manager.connect(host=device['host'],
port=device['port'],
username=device['username'],
password=device['password'],
hostkey_verify=False) as m:
for capability in m.server_capabilities:
print(capability)
def get_config():
with manager.connect(host=device['host'],
port=device['port'],
username=device['username'],
password=device['password'],
hostkey_verify=False) as m:
return m.get_config("running")
response = get_config()
data = xmltodict.parse(response.xml)["rpc-reply"]["data"]
# for interface in data["interfaces"]:
# for inter in interface["interface"]:
# print(inter["name"])
# print(inter["config"])
gigabit_interface = data["interfaces"][1]["interface"]
# for interface in gigabit_interface:
# print(interface["name"])
# if interface["ipv4"].get("address"):
# print(interface["ipv4"]["address"]["ip"])
# print(interface["ipv4"]["address"]["netmask"])
for interface in gigabit_interface:
print(interface["name"])
try:
print(interface["ipv4"]["address"]["ip"])
print(interface["ipv4"]["address"]["netmask"])
except:
print("no ip address")
print("no ip netmask")
for interface in gigabit_interface:
print("\ninterface", interface["name"])
try:
print(" ip address", interface["ipv4"]["address"]["ip"], interface["ipv4"]["address"]["netmask"])
except:
print(" no ip address")