1

我使用 net-snmp-5.7.3 包实现了不同的自定义 MIB。例如,自定义 OID 如下:

  • .1.3.6.1.4.1.XXXXXX.1.1 //标量
  • .1.3.6.1.4.1.XXXXXX.1.2 //标量
  • .1.3.6.1.4.1.XXXXXX.3.2 //表
  • .1.3.6.1.4.1.XXXXXX.6.1 //标量
  • .1.3.6.1.4.1.XXXXXX.6.2 //标量
  • .1.3.6.1.4.1.XXXXXX.6.3 //标量

对于字符串 mibs 的类型,我注册的实例如下:

    reginfo = netsnmp_create_handler_registration("fwVersion",   handle_fwVersion, fwVersion_oid, OID_LENGTH(fwVersion_oid),HANDLER_CAN_RWRITE);

watcher_flags = WATCHER_SIZE_STRLEN;
netsnmp_init_watcher_info6(&watcher_info, fwVersion, strlen(fwVersion),
                           ASN_OCTET_STR, watcher_flags,
                           sizeof(fwVersion), NULL);
netsnmp_register_watched_instance(reginfo, &watcher_info);

snmpget 命令适用于标量。但是,snmptable 命令不仅会检索表 OID,还会错误地调用以下标量处理程序。

我已经提到了http://net-snmp.sourceforge.net/dev/agent/data_set_8c-example.html的 data_set 示例

另外,我尝试过使用不同的 mib2c 表配置模板来实现。

有趣的是,如果我检索 net-snmp 包中提供的示例 mib(例如 data_set、netSnmpHostsTable),我的自定义处理程序(因为它们都有后续的 OID)再次被错误地调用。

如何防止 snmptable 错误地调用其他 mib 对象处理程序?这是 snmptable 命令的失败吗?

4

0 回答 0