编写适用于Windows的SNMP代理:SnmpAPI.Lib或MgmtAPI.lib?

时间:2011-07-29 15:20:36

标签: windows snmp agent

我需要在Windows上为我们公司的产品编写SNMP代理。

SnmpApi.lib - 我的理解是SnmpApi.lib允许您从头开始创建一个完整的代理,可能需要更多的工作。但是,这会占用SNMP端口,并且不允许其他代理运行,并且需要更长的代码。

MgmtAPI.lib - 此lib将允许用户创建已经运行的Windows SNMP服务的扩展,并且似乎是创建Windows代理的更优雅的方法。但是,我发现关于如何编写这样的代理的官方MS文档/示例很少。我还在另一个论坛上看到这可能会被弃用。

我在野外看过一本名为“Windows NT SNMP”的Oreilly书,但我听说它使用了弃用的库或技术。我不知道这是不是真的。

我还看到像SNMP ++这样的库使用SnmpAPI.lib来创建代理,但同样,这并不像通过MgmtAPI.lib在系统上放置多个子代理那样优雅。

一些问题:

我听说MgmtAPI.lib是遗留/弃用的。这是真的吗?

创建Windows SNMP代理的最佳做法是什么?

我应该使用哪个库?

还有其他建议吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

默认的Windows SNMP堆栈和框架的能力非常有限。不幸的是,您可能在其他地方找到了最好的解决方案(其中有许多外部库和堆栈)。如果您想要一个模块化的并允许子代理,那么请查看支持AgentX协议的堆栈。这是一个标准化的SNMP子代理协议,可以让多个子代理连接到主代理。

但无论你做什么,请选择支持SNMPv3的堆栈并使用其中的安全性。

如果你想要一个已知在Windows上运行良好的随机堆栈示例,请尝试{“3}},它在”替换Windows上的SNMP堆栈“中非常流行。但我也有偏见并且与项目有关,所以我最后会说:“它没关系太多;选择任何支持AgentX和SNMPv3的堆栈。”