gpt4 book ai didi

c - 如何在 C/C++ 中使用 net-snmp MIB API 列出 SMIv1 MIBS?

转载 作者:太空宇宙 更新时间:2023-11-04 00:08:40 26 4
gpt4 key购买 nike

我想用 net-snmp 显示各种 MIBS 的列表,并显示与 SNMP 树结构相关的其他信息。

现在我的客户的 SMIv1 MIBS 没有出现在列表中,但是被 net-snmp 正确加载了。

示例 net-snmp 代码遍历内存中的 MIB 结构,并假设我们在树中的 MIB 和 MODULE-IDENTITY 注释之间具有 SMIv2 双射。因此,当我们找到一个 MODULE-IDENTITY 节点时,我们就找到了一个 MIB。

有人知道用 net-snmp 列出 SMIv1 MIBS 的正确方法是什么吗?(或任何解决方法?)

  // Read mibs and obtain memory structures
struct tree * head = read_all_mibs();
// Walk down the SNMP tree
for ( struct tree * tp = head; tp; tp = tp->next_peer )
{
// Module-indentity
if ( tp->type == TYPE_MODID )
{
// XXX We found a SMIv2 MIB, but SMIv1 MIBs have no MODULE-IDENTITY node
}
}

注意:我找到了一个转换器 smidump(一个命令行工具,或作为 http://www.ibr.cs.tu-bs.de/projects/libsmi/tools/ 的 Web 服务)但它没有向 MIB 添加 MODULE-IDENTITY 节点。

编辑:请注意,任何可以将旧的 SNMP MIB 转换为更新的(SMIv2 样式)的工具都可以解决该问题。在那个特定方向有什么帮助吗?

一个建议是,在没有 MODULE-IDENTIFIER 的情况下,找到 MIB 的 root OBJECT-IDENTIFIER(有时 MIB 会在许多不同且不相关的地方添加节点,所以这不会工作)。使用 root 节点,我可以显示与该 MIB 相关的大部分树。

最佳答案

它使用 UDP 数据报。您可以获得 net-snmp 或 snif UDP 流量的来源(看起来是一种更简单的方法)。

关于c - 如何在 C/C++ 中使用 net-snmp MIB API 列出 SMIv1 MIBS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12474054/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com