VBDNFW2SNMP is a quick attempt to use the winsnmp api to retrieve information from remote snmp agents. This example uses VB .Net 2005 with the .Net framework 2.0
Most of the examples I found on the net used WMI instead of api calls, and the older VB6 code used winsock. After many, many hours of searching and putting pieces of info together, i could finaly make a get call to a remote snmp agent. The most valuable resources were:
Microsoft platform SDK for Windows 2003 server.
WinSNMP (VB6) at Http://www.winsnmp.com
check out the WinSNMP v2.0 Addendum at http://www.winsnmp.com/docs/winsnmp2.txt
Function Pointers and COM
By Ben Garcia (VB6 and C++) at http://www.15seconds.com/issue/021002.htm
Windows SNMP - An Open Interface for Programming Network Management Applications usint the Simple Network Management Protocol under Microsoft Windows - available via FTP from host SunSite.unc.edu under directory /pub/micro/pc-stuff/ms-windows/WinSNMP
SNMP example in C# from Evolution software at http://www.evolutionsoftwarellc.com/
The rest was filled in with info from MSDN and GOOGLE
Using the code
I have included the complete project which retrieves the os version only. Simply run VBDNFW2SNMP.exe, type in the remote IP and click on the get button.
The current code does not release and cleanup SNMP objects created. It also does not retrieve all types of OID, as this part of the code has to be expanded on further. Where possible I have added the necessary error management to try and make the code easier to debug.
Points of Interest
This was a huge challenge for me as I had to use API calls and really tried to understand a bit more about interoperability between managed and unmanaged code.
First attempt :)