使用 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
更短时,它会双重注册一些变量。
假设你的问题是 'Why is a 0 appended to my OID?'
为了访问任何 scalar 值,您必须将 .0 附加到树的叶节点。如果您尝试寻址 table 条目,则需要将条目的索引附加到 table。如果您不使用 OID 作为 bulkget 或 walk 之类的参数,则不在标量上使用 .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
请参阅 this net-snmp 邮件列表条目以了解有关标量为何以 0 结尾的更明确的详细信息。
我正在使用自己开发的 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
更短时,它会双重注册一些变量。
假设你的问题是 'Why is a 0 appended to my OID?' 为了访问任何 scalar 值,您必须将 .0 附加到树的叶节点。如果您尝试寻址 table 条目,则需要将条目的索引附加到 table。如果您不使用 OID 作为 bulkget 或 walk 之类的参数,则不在标量上使用 .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
请参阅 this net-snmp 邮件列表条目以了解有关标量为何以 0 结尾的更明确的详细信息。