繁体   English   中英

使用net-snmp进行OID寻址

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM