(Py) Biblioteka Ncclient przykłady (Netconf)*

Biblioteka Ncclient przykłady

Artykuł związany z teorią protokołu Netconf jest dostępny pod tym linkiem.

Xxx

Przykładowe zapytanie protokołu Netconf:

from ncclient import manager
import xmltodict
import json

# Słownik zawierający podstawowe informacje na temat urządzenia sieciowego:
device = {"ip": "192.168.64.151",
		"port": "830",
		"user": "rkkr",
		"pass": "rkkr"}

# Zmienna zaierająca filter XML:
interface_data_filter = """
<filter>
	<interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">
	     <interface>
	     </interface>
	 </interfaces>
 </filter>
 """

# Dane niezbędne do nawiązania połączenia protokołu Netconf::
connection = manager.connect(host=device["ip"],
							port=device["port"],
							username=device["user"],
							password=device["pass"],
							hostkey_verify=False)

# Zapytanie SSH wysłane za pomocą protokołu Netconf:
interface_netconf_xml = connection.get_config("running", interface_data_filter)

# Przetworzenie pobranego pliku XML do formatu słownika Python:
interface_python_xml = xmltodict.parse(interface_netconf_xml.xml)["rpc-reply"]["data"]
output = json.loads(json.dumps(interface_python_xml))

# Wyświetlenie informacji o interfejsach sieciowych
for interface in output["interfaces"]["interface"]:
    print("\nInterfejs: " + interface["name"])

    try:
        print("    Opis interfejsu: " + interface["description"])
    except:
        print("    Opis interfejsu: Brak")

    if interface["enabled"] == "true":
        print("    Stan interfejsu: UP")
    else:
        print("    Stan interfejsu: DOWN")

# Zakończenie sesji protokołu Netconf:
connection.close_session()
Wydruk powyższego kodu:

Interfejs: GigabitEthernet1
    Opis interfejsu: RKKR-test-restconf
    Stan interfejsu: UP

Interfejs: GigabitEthernet2
    Opis interfejsu: Brak
    Stan interfejsu: DOWN

Interfejs: GigabitEthernet3
    Opis interfejsu: Brak
    Stan interfejsu: DOWN

Interfejs: GigabitEthernet4
    Opis interfejsu: Brak
    Stan interfejsu: DOWN

Pozostałe tematy związane z bibliotekami / modułami Python

Podstawowe

Rozszerzone

SQL

PyQt 5

Automatyzacja

Data Mining

PDFPRINT

Robert T Kucharski

Cisco Network Engineer in GPW.

1 Response

  1. 27 kwietnia 2020

    […] Biblioteka Cclient (Netconf) [] – […]

Dodaj komentarz