利用Python查询H3C网络设备示例,运维用了它,都称赞!

简介: 利用Python查询H3C网络设备示例,运维用了它,都称赞!

pysnmp 文档:官方文档,查看该模块所有的使用方法

h3c mib 库:华三官方提供的设备 MIB 值

mib 浏览器:可以用来查看 MIB OID 节点

基础环境

  • Windows 10
  • python 3.8
  • pysnmp 4.4.12
  • HCL

网络拓扑


配置信息

路由器配置

路由器开启了 v2c 和 v3 两个版本来进行实验

# snmp-agent snmp-agentcommunitywritesimpleprivate snmp-agentcommunityreadsimplepublic snmp-agentsys-infoversionv2cv3 snmp-agentgroupv3netdevopsauthentication snmp-agenttarget-hosttrapaddressudp-domain192.168.56.102paramssecuritynamepublic snmp-agentusm-userv3adminnetdevopssimpleauthentication-modemd5Admin@h3cprivacy-modeaes128Admin@h3c snmp-agenttrapenable #

代码示例

#导入高层API frompysnmp.hlapiimport* #初始化引擎 engine=SnmpEngine() #选择SNMP协议,v1和v2c只用团体字,使用CommunityData类实例化 #SNMPv1 #communityData=CommunityData('public',mpModel=0) #SNMPv2c communityData=CommunityData('public',mpModel=1) #如果是v3,则需要用户凭证,使用UsmUserData类实例化,认证和加密算法与上面设备配置相对应 userData=UsmUserData( userName='admin', authKey='Admin@h3c', privKey='Admin@h3c', authProtocol=usmHMACMD5AuthProtocol, privProtocol=usmAesCfb128Protocol, ) #配置目标主机 target=UdpTransportTarget(('192.168.56.20',161)) #实例化上下文对象 context=ContextData() defgetSysName(target): # ObjectIdentity 类负责 MIB 对象的识别。 #指定要查询的OID对象或名称 sysname=ObjectIdentity("1.3.6.1.2.1.1.5.0") sysname1=ObjectIdentity('SNMPv2-MIB','sysName',0) #使用ObjectType类初始化查询对象 obj1=ObjectType(sysname) #使用getCMD方法进行查询,返回结果是一个迭代器,需要使用next()来取值 #传递的参数均为为上面定义的变量,以v2c为例(如果是v3,communityData替换为userData) g=getCmd(engine,communityData,target,context,obj1) #取值 _,_,_,result=next(g) #打印输出 foriinresult: print(i) defgetIfaceList(target): """ 这个函数是查询接口列表,和上面查询sysName的区别是使用了nextCmd来获取一个MIB子树的全部内容 主要是`lexicographicMode=False`参数,默认为`True`,会一直查询到 MIB 树结束。 """ #接口列表的OID值 ifaceListOid=ObjectType(ObjectIdentity('1.3.6.1.2.1.2.2.1.2')) g=nextCmd(engine,userData,target,context,ifaceListOid,lexicographicMode=False) #手动迭代并输出内容,并进行迭代器终止的判断 try: whileTrue: errorIndication,errorStatus,errorIndex,varBinds=next(g) forifaceinvarBinds: print(iface) exceptStopIteration: print('Getinterfacelistdone.') getSysName(target) print('============================') getIfaceList(target)

上述代码输出内容如下,可以根据实际需求,对函数的返回内容进行处理,为方便实验,都使用了 print 来查看结果:

PSC:\python\netdevops>python"c:\python\netdevops\pysnmp_demo.py" SNMPv2-MIB::sysName.0=R1 ============================ SNMPv2-SMI::mib-2.2.2.1.2.1=GigabitEthernet0/0 SNMPv2-SMI::mib-2.2.2.1.2.2=GigabitEthernet0/1 SNMPv2-SMI::mib-2.2.2.1.2.3=GigabitEthernet0/2 SNMPv2-SMI::mib-2.2.2.1.2.4=Serial1/0 SNMPv2-SMI::mib-2.2.2.1.2.5=Serial2/0 SNMPv2-SMI::mib-2.2.2.1.2.6=Serial3/0 SNMPv2-SMI::mib-2.2.2.1.2.7=Serial4/0 SNMPv2-SMI::mib-2.2.2.1.2.8=GigabitEthernet5/0 SNMPv2-SMI::mib-2.2.2.1.2.9=GigabitEthernet5/1 SNMPv2-SMI::mib-2.2.2.1.2.10=GigabitEthernet6/0 SNMPv2-SMI::mib-2.2.2.1.2.11=GigabitEthernet6/1 SNMPv2-SMI::mib-2.2.2.1.2.129=NULL0 SNMPv2-SMI::mib-2.2.2.1.2.130=InLoopBack0 SNMPv2-SMI::mib-2.2.2.1.2.131=Register-Tunnel0 Getinterfacelistdone.
相关文章
|
JSON API 数据格式
洋码头商品 API 示例指南(Python 实现)
洋码头是国内知名跨境电商平台,提供商品搜索、详情、分类等API接口。本文详解了使用Python调用这些API的流程与代码示例,涵盖签名生成、请求处理及常见问题解决方案,适用于构建选品工具、价格监控等跨境电商应用。
|
缓存 JSON API
VIN车辆识别码查询车五项 API 实践指南:让每一俩车有迹可循(Python代码示例)
VIN(车辆识别代码)是全球唯一的17位汽车标识码,可快速获取车架号、发动机号、品牌型号等核心信息。在二手车交易、保险理赔、维修保养等场景中,准确解析VIN有助于提升效率与风控能力。本文介绍VIN码结构、适用场景,并提供Python调用示例及优化建议,助力企业实现车辆信息自动化核验。
1715 1
|
JSON API UED
运营商二要素验证 API:核验身份的一致性技术实践(Python示例)
随着线上业务快速发展,远程身份核验需求激增。运营商二要素验证API通过对接三大运营商实名数据,实现姓名、手机号、身份证号的一致性校验,具备权威性高、实时性强的优势,广泛应用于金融、电商、政务等领域。该接口支持高并发、低延迟调用,结合Python示例可快速集成,有效提升身份认证的安全性与效率。
1169 0
|
JSON API 数据格式
Python采集京东商品评论API接口示例,json数据返回
下面是一个使用Python采集京东商品评论的完整示例,包括API请求、JSON数据解析
|
10月前
|
存储 机器学习/深度学习 监控
网络管理监控软件的 C# 区间树性能阈值查询算法
针对网络管理监控软件的高效区间查询需求,本文提出基于区间树的优化方案。传统线性遍历效率低,10万条数据查询超800ms,难以满足实时性要求。区间树以平衡二叉搜索树结构,结合节点最大值剪枝策略,将查询复杂度从O(N)降至O(logN+K),显著提升性能。通过C#实现,支持按指标类型分组建树、增量插入与多维度联合查询,在10万记录下查询耗时仅约2.8ms,内存占用降低35%。测试表明,该方案有效解决高负载场景下的响应延迟问题,助力管理员快速定位异常设备,提升运维效率与系统稳定性。
387 4
|
测试技术 API 开发者
淘宝关键词搜索商品列表API接入指南(含Python示例)
淘宝关键词搜索商品列表API是淘宝开放平台的核心接口,支持通过关键词检索商品,适用于比价、选品、市场分析等场景。接口提供丰富的筛选与排序功能,返回结构化数据,含商品ID、标题、价格、销量等信息。开发者可使用Python调用,需注意频率限制与错误处理,建议先在沙箱环境测试。
|
数据采集 索引 Python
Python Slice函数使用教程 - 详解与示例 | Python切片操作指南
Python中的`slice()`函数用于创建切片对象,以便对序列(如列表、字符串、元组)进行高效切片操作。它支持指定起始索引、结束索引和步长,提升代码可读性和灵活性。
|
JSON API 开发者
一号店商品 API 示例指南(Python 实现)
本教程介绍如何使用 Python 调用一号店商品 API,涵盖商品搜索、详情、分类等接口的调用方法。内容包括注册认证、签名生成、代码实现及常见问题解决方案,并提供完整示例代码,帮助开发者快速接入一号店开放平台,构建电商工具与数据分析应用。
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
549 17
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
410 10

推荐镜像

更多