我有一个程序正在使用netsnmp C API查询设备的snmp信息。到目前为止,一切都工作正常,但是当我轮询一个新的OID(1.3.6.1.2.1.138.1.1.1.3.0(isisSysID))时,它不起作用,并且我收到了noSuchName错误,其他OID如IF-MIB工作正常。
但是,当我从同一系统到同一端点使用snmpget进行测试时,它工作正常。 (v1或v2c) snmpget -v2c -c 1.3.6.1.2.1.138.1.1.1.3.0
谢谢。
答案 0 :(得分:0)
找出问题所在, 在我的代码中,我使用了get_node方法将OID字符串转换为netsnmp api用于请求的OID对象。如果您使用的OID包含名为“ sysName.0”的文本部分,则此方法很好,但如果您使用的OID完全为数字,即“ 1.3.6.1.2.1.138.1.1.1.3.0”,则此方法失败。
幸运的是,您可以将OID缩短为“ mib-2.138.1.1.1.3.0”,因为“ mib-2”可以替代“ 1.3.6.1.2.1”。