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






4.40/5 (5投票s)
通过 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 调用,并真正尝试更多地了解托管代码和非托管代码之间的互操作性。
历史
第一次尝试:)