65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 WINSNMP 和 VB.NET 2005 获取 SNMP 信息。

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.40/5 (5投票s)

2008年3月18日

CPOL

1分钟阅读

viewsIcon

67580

downloadIcon

3005

通过 WINSNMP API 发送 GET 请求,从远程设备获取操作系统版本。

引言

VBDNFW2SNMP 是一个快速尝试,使用 winsnmp API 从远程 SNMP 代理获取信息。此示例使用 VB .Net 2005 和 .Net framework 2.0

背景

我发现的大多数示例都使用 WMI 而不是 API 调用,而较旧的 VB6 代码则使用 winsock。经过漫长、漫长的搜索和整合信息,我终于可以向远程 SNMP 代理发送 GET 请求了。最有价值的资源是:

Microsoft 平台 SDK for Windows 2003 server。

WinSNMP (VB6) 在 Http://www.winsnmp.com

请查看 WinSNMP v2.0 附录:http://www.winsnmp.com/docs/winsnmp2.txt

函数指针和 COM
作者:Ben Garcia (VB6 和 C++) 在 http://www.15seconds.com/issue/021002.htm

Windows SNMP - 在 Microsoft Windows 下使用简单网络管理协议编程网络管理应用程序的开放接口 - 可通过 FTP 从主机 SunSite.unc.edu 的 /pub/micro/pc-stuff/ms-windows/WinSNMP 目录获取

Evolution software 提供的 C# SNMP 示例:http://www.evolutionsoftwarellc.com/

其余部分则使用了 MSDN 和 GOOGLE 的信息。

使用代码

我包含了完整的项目,仅检索操作系统版本。只需运行 VBDNFW2SNMP.exe,输入远程 IP 并单击“获取”按钮即可。

当前代码没有释放和清理创建的 SNMP 对象。它也没有检索所有类型的 OID,因为代码的这部分需要进一步扩展。在可能的情况下,我添加了必要错误处理,以尝试使代码更易于调试。

关注点

这对我来说是一个巨大的挑战,因为我必须使用 API 调用,并真正尝试更多地了解托管代码和非托管代码之间的互操作性。

历史

第一次尝试:)

© . All rights reserved.