[英]OID addressing with net-snmp
我正在用自己开发的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结尾的更明确的详细信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.