我正在尝试使net-snmp支持我自己的MIB,但我失败了。我按照这里的说明操作: http://www.net-snmp.org/wiki/index.php/TUT:Writing_a_MIB_Module
然后我想也许我可以使用示例MIB文件和.c和.h文件来测试该示例是否有效。再次,按照上面链接中的教程,我可以使用它:
snmpget -v2c -c public localhost NET-SNMP-TUTORIAL-MIB::nstAgentModuleObject.0
我得到了这个:
NET-SNMP-TUTORIAL-MIB::nstAgentModuleObject.0 = INTEGER: 1
(看起来不错)。
然后我尝试像这样测试snmpset:
snmpset -v 2c -c public localhost NET-SNMP-TUTORIAL-MIB::nstAgentModuleObject.0 i 5
或
snmpset -v 2c -c public localhost NET-SNMP-TUTORIAL-MIB::nstAgentModuleObject.0 = 5
或
snmpset -v 2c -c public localhost NET-SNMP-TUTORIAL-MIB::nstAgentModuleObject.0 INTEGER 5
我收到以下错误:
Error in packet.
Reason: wrongLength (The set value has an illegal length from what the agent expects)
Failed object: NET-SNMP-TUTORIAL-MIB::nstAgentModuleObject.0
请帮我理解我哪里做错了。所有文件都来自教程,但我没有 改变一切。
提前致谢!
答案 0 :(得分:2)
如果您使用64位目标进行编程this可以帮助您
答案 1 :(得分:0)
如果要继续在64位机器上运行,可以将变量从int更改为long:
static int nstAgentModuleObject = 1;
==> static long .....
netsnmp_register_int_instance(....)
==> netsnmp_register_long_instance(....)