我们的想法是将OID转换为MIB对象名称,反之亦然,包括使用pysnmp获取枚举值的名称。
我找到了这个'PDU var-binds to MIB objects'示例,但是当我尝试加载不同的MIB时(示例varBinds部分被注释,所以没有问题),特别是NMS,我得到了一个错误:
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/pyasn1/type/univ.py", line 227, in prettyIn
return int(value)
TypeError: int() argument must be a string, a bytes-like object or a number, not 'tuple'
NMS MIB所有三个导入的模块都在.pysnmp / mibs文件夹中编译了.py变种。 NET-SNMPs snmptranslate app可以无错误地转换OID。
加载问题的原因是什么,一些MIB不一致?
加成:
软件包升级到pysnmp-4.3.10,pyasn1-0.3.7,pysmi-0.1.4。 成功尝试了原始示例,没有添加任何代码,除了使用的MIB列表,随机找到另外两个MIB,其中还包括导入的SNMPv2-TC和RFC1155-SMI。只有在将NMS MIB添加到loadModules列表时,才会出现加载部分代码的问题。
答案 0 :(得分:0)
尝试将pyasn1,pysnmp和pysmi软件包升级到最新发布的版本。
如果它没有帮助,你能想出一个简单的复制器吗?
这个错误是否发生在任何特定的MIB上?