利用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.
相关文章
|
4月前
|
传感器 边缘计算 运维
AR 虚实叠加技术在工业设备运维中的实现流程方案
AR技术通过虚实信息融合,实现工业设备参数可视化、故障立体化、操作直观化,提升运维效率与精度。结合物联网与数字孪生,打造智能运维新范式。
|
4月前
|
机器学习/深度学习 算法 安全
【PSO-LSTM】基于PSO优化LSTM网络的电力负荷预测(Python代码实现)
【PSO-LSTM】基于PSO优化LSTM网络的电力负荷预测(Python代码实现)
225 0
|
2月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的青少年网络使用情况分析及预测系统
本研究基于Python大数据技术,构建青少年网络行为分析系统,旨在破解现有防沉迷模式下用户画像模糊、预警滞后等难题。通过整合多平台亿级数据,运用机器学习实现精准行为预测与实时干预,推动数字治理向“数据驱动”转型,为家庭、学校及政府提供科学决策支持,助力青少年健康上网。
|
2月前
|
存储 机器学习/深度学习 监控
网络管理监控软件的 C# 区间树性能阈值查询算法
针对网络管理监控软件的高效区间查询需求,本文提出基于区间树的优化方案。传统线性遍历效率低,10万条数据查询超800ms,难以满足实时性要求。区间树以平衡二叉搜索树结构,结合节点最大值剪枝策略,将查询复杂度从O(N)降至O(logN+K),显著提升性能。通过C#实现,支持按指标类型分组建树、增量插入与多维度联合查询,在10万记录下查询耗时仅约2.8ms,内存占用降低35%。测试表明,该方案有效解决高负载场景下的响应延迟问题,助力管理员快速定位异常设备,提升运维效率与系统稳定性。
211 4
|
3月前
|
安全 Linux 网络安全
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
109 0
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
|
2月前
|
传感器 人工智能 运维
拔俗AI巡检系统:让设备“会说话”,让隐患“早发现”,打造更安全高效的智能运维
AI巡检系统融合AI、物联网与大数据,实现设备7×24小时智能监测,自动识别隐患并预警,支持预测性维护,提升巡检效率5倍以上,准确率超95%。广泛应用于工厂、电力、交通等领域,推动运维从“被动响应”转向“主动预防”,降本增效,保障安全,助力数字化转型。(238字)
|
3月前
|
机器学习/深度学习 算法 PyTorch
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
|
3月前
|
机器学习/深度学习 算法 PyTorch
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)
153 0
|
4月前
|
机器学习/深度学习 算法 调度
基于遗传算法GA算法优化BP神经网络(Python代码实现)
基于遗传算法GA算法优化BP神经网络(Python代码实现)
291 0
|
4月前
|
机器学习/深度学习 数据采集 TensorFlow
基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)
基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)
168 0

推荐镜像

更多