from ncclient import manager
import xmltodict
interfaces = '''
<filter type="subtree">
<interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"
xmlns:urn1="urn:huawei:params:xml:ns:yang:huawei-interface"
xmlns:urn2="urn:huawei:params:xml:ns:yang:huawei-security-zone"
xmlns:urn3="urn:ietf:params:xml:ns:yang:ietf-ip"
xmlns:urn4="urn:huawei:params:xml:ns:yang:huawei-eth-trunk"
xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">
</interfaces>
</filter>
'''
data_dict = {}
host = "防火墙管理ip地址"
port = 830
user = "493031"
password = "密码"
#1.Create a NETCONF session
with manager.connect(host=host,
port=port,
username=user,
password=password,
hostkey_verify = False,
device_params={'name': "huaweiyang"},
allow_agent = False,
look_for_keys = False) as m:
get_reply = m.get_config(source='running', filter=interfaces, )
print(type(get_reply))#<class 'ncclient.operations.retrieve.GetReply'>
#转为dict
xml_data = get_reply.data_xml
xml_dict = xmltodict.parse(xml_data)
print('888883',xml_dict.get("data").get("interfaces").get("interface"))
for i in xml_dict.get("data").get("interfaces").get("interface"):
print(i)
目录
Huawei_Netconf_Ncclient
官网介绍
- ncclient 是一个用于 NETCONF 客户端的 Python 库。
- 它旨在提供一个直观的 API
- 将 NETCONF 的 XML 编码特性明智地映射到 Python 结构和习惯用法,并使编写网络管理脚本变得更加容易。
- 异步RPC
- 正常情况下我们只需要导入ncclient当中的manager就可以了
from ncclient import manager
with manager.connect(host=host, port=830, username=