1.通过SSH来登录交换机,然后执行display lldp neighbor-information List
2.使用textfsm解析交换机返回的结果,结果是如下格式:
[对端设备名, 本地端口号, 对端端口号]
3.代码
a.textfsm解析规则模板文件(h3c_lldp_List.yaml):
Value device_ID (\S+)Value local_intf (\w+[\/|\d]{3})Value remote_inft (\w+[\/|\d]{3})Start ^System name Local Interface Chassis ID Port ID ^${device_ID}\s+${local_intf}\s+\S+\s+${remote_inft} -> RecordEOF
b.需要执行的python代码文件:
from netmiko import ConnectHandlerimport textfsm### 使用netmiko SSH登录交换机 ###h3c_device = { 'device_type': 'hp_comware', 'ip': '172.16.1.102', 'username': 'admin', 'password': 'admin',}connect = ConnectHandler(**h3c_device)lldp_output = connect.send_command('display lldp neighbor-information List')print('交换机执行命令返回的结果:')print(lldp_output)print('--------------------------------------------')### 使用TextFSM解析交换机的输出文本 #### textfsm读取 匹配规则模板h3c_lldp_List.yamlfsm = textfsm.TextFSM(open('h3c_lldp_List.yaml'))# 将交换机的LLDP输出信息 传给textfsm进行解析fsm_results = fsm.ParseText(lldp_output)print('textfsm解析结果:')print(fsm_results)
4.代码执行后输出的结果:
交换机执行命令返回的结果:Chassis ID : * -- -- Nearest nontpmr brIDge neighbor # -- -- Nearest customer brIDge neighbor Default -- -- Nearest brIDge neighborSystem name Local Interface Chassis ID Port IDsw1 GE1/0 7425-8ae3-e836 GigabitEthernet1/0 sw3 GE2/0 7425-8ae3-5b88 GigabitEthernet1/0 --------------------------------------------textfsm解析结果:[['sw1', 'GE1/0', 'GigabitEthernet1/0'], ['sw3', 'GE2/0', 'GigabitEthernet1/0']]Process finished with exit code 0
5.参考
Python netmiko 管理 network devices 简例
TextFSM官方文档
以上是内存溢出为你收集整理的Python使用TextFSM 解析H3C交换机的LLDP信息全部内容,希望文章能够帮你解决Python使用TextFSM 解析H3C交换机的LLDP信息所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)