我正在用自己开发的MIB文件扩展我的snmp代理。我注意到的是,当我散步时,它会将变量打印为
MY-MIB::myvariable.0
但是我专门将变量放在不以0结尾的OID处。
我正在使用net-snmp库函数:
netsnmp_create_handler_registration
并且
netsnmp_register_read_only_ulong_instance
注册我的实例。
似乎只发生在netsnmp_create_handler_registration
。但是,当我指定reg_oid_len
一个较短的值时,它会双重注册一些变量。
我要假设您的问题是“为什么在OID后面附加0?”,这是我要讲的内容。为了访问任何标量值,您必须将.0附加到树的叶子节点。如果尝试寻址表条目,则需要将条目的索引附加到表中。如果您不使用OID作为批量或步行之类的参数,那么在标量上不使用.0通常会导致问题。
$ snmpget -v2c -c public 192.168.1.120 1.3.6.1.2.1.1.1.0
SNMPv2-MIB::sysDescr.0 = STRING: things, stuff
$ snmpget -v2c -c public 192.168.1.120 1.3.6.1.2.1.1.1
SNMPv2-MIB::sysDescr = No Such Instance currently exists at this OID
$ snmpwalk -v2c -c public 192.168.1.120 1.3.6.1.2.1.1.1
SNMPv2-MIB::sysDescr.0 = STRING: things, stuff
请参阅此net-snmp邮件列表条目,以获取有关标量为何以0结尾的更明确的详细信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句