首页 > 解决方案 > 来自easysnmp python库的snmp_walk函数返回空列表

问题描述

我正在使用easysnmp python库中的snmp_walk函数从Jacarta powerZook仪表中获取当前值,但它返回一个空列表(无值),但是当我使用Qtmib(SNMP MIB浏览器)时,我可以获得该值。我正在使用 Ubuntu 18.04 并尝试了所有 python 解释器(2.7、3.5、3.6、3.7),但仍然没有。我也用“sudo”权限运行了python脚本,但仍然没有结果。仅供参考,功率计直接连接到我电脑的以太网端口。我的代码:

from easysnmp import snmp_walk

snmp_walk(oids='.1.3.6.1.4.1.19011.1.3.5.1.3.1.0 - Current/AMPS', hostname='192.168.1.200', 
          community='public', version=1, timeout=3, retries=5, remote_port=161, use_long_names=True, 
          retry_no_such=True, abort_on_nonexistent=True)

输出:

[]

注意:我遵循了 powerZook 安装指南的所有说明和设置并搜索了互联网以找到解决方案,但不幸的是我没有找到任何可以帮助我的东西

Qtmib 的屏幕截图和 powerZook 的返回值 在此处 输入图像描述

标签: pythonsnmpeasysnmp

解决方案


解决方案如下:

  1. 安装npcap(我不确定这是否是解决方案的一部分)

  2. 从 OID 中删除最后一个零和两个单词“Current/AMPS”

设备安装指南中的原始 OID 如下:

'.1.3.6.1.4.1.19011.1.3.5.1.3.1.0 - Current/AMPS'

修改后变成这样:

'.1.3.6.1.4.1.19011.1.3.5.1.3.1'

我要感谢并感谢@hansolo花费时间和精力帮助我。


推荐阅读