ActiveSocket

 Product Overview

 ActiveSocket Objects:
 
 How to use

 Online Samples

 Download (.exe)

 Brochure (.pdf)

 Manual (.htm)

 Release Notes


Support

 Knowledge Base

 Forum

 Contact Support


Purchase

 Licensing

 Pricing

 Order now


Related documents

 Tutorials

 Tools


  Download ActiveSocket Network Communications Toolkit 4.1  (5105 KB - .exe file)
  Download Manual  (505 KB - .htm file)

SNMP MIB Browser for Visual Basic .NET and Visual CSharp .NET

A management information base (MIB) is a database used to manage the devices in a communications network. The database is hierarchical (tree-structured) and entries are addressed through object identifiers (OID's).

A MIB should contain information on these commands and on the target objects (controllable entities or potential sources of status information) with a view to tuning the network transport to the current needs. Each type of object in a MIB database has a name, a syntax, and an encoding. The name is represented uniquely as an OID. An OID is an administratively assigned name. The administrative policies used for assigning names are discussed later in this memo.

Use ActiveSocket's 'SnmpMibBrowser' object to load a MIB database into memory and iterate over all objects and view all properties.

Overview of all ActiveSocket objects:
      » Icmp
      » Http
      » Ftp & FtpFile
      » DnsServer & DnsRecord
      » Ntp
      » Ssh
      » Rsh
      » SnmpManager
      » SnmpTrapManager
      » SnmpMibBrowser
      » Tcp
      » Udp
      » IPtoCountry
      » Wake-on-LAN


SnmpTrapManager Sample code

     Visual Basic .NET sample: Load a MIB file and browse through it
Imports ASOCKETLib

Module SnmpMib

    Sub Main()
        Dim objConstants As SocketConstants = New SocketConstants
        Dim objSnmpMIB As SnmpMibBrowser = New SnmpMibBrowser
        Dim strMibFile As String = ""
        Dim bVerbose As Boolean = False

        strMibFile = ReadInput("Enter MIB file", "c:\windows\system32\mib_ii.mib")
        If (ReadInput("Verbose output (y/n) ?", "n") = "y") Then
            bVerbose = True
        Else
            bVerbose = False
        End If

        Console.WriteLine("MIB File: " & strMibFile)
        objSnmpMIB.LoadMibFile(strMibFile)
        Console.WriteLine("LoadMibFile, result: " & objSnmpMIB.LastError.ToString() )
        If (objSnmpMIB.LastError = 0) Then

            ShowMIBTree(objSnmpMIB, objConstants, bVerbose)
        End If

        Console.WriteLine("Ready.")
        System.Threading.Thread.Sleep(5000) ' Sleep for 5 seconds 
    End Sub

    Private Sub ShowMIBTree(ByVal objSnmpMIB, ByVal objConstants, ByVal bVerbose)

        Dim objSnmp As SnmpObject
        Dim strDescription, strAccess, strStatus As String
        Dim nDescription As Int32

        ' Start with "iso"
        objSnmp = objSnmpMIB.Get("iso")

        While (objSnmpMIB.LastError = 0)

            Console.WriteLine(objSnmp.Path)
            If (bVerbose = True) Then
                strDescription = objSnmp.Description.ToString().Replace(vbCrLf,"[nl]").Replace(vbLf,"[nl]")
                nDescription = strDescription.Length
                If (nDescription > 40) Then

                    strDescription = strDescription.Substring(0, 40)
                    strDescription = strDescription & "..."
                End If
                If (objSnmp.Access = objConstants.asMIB_ACCESS_NOACCESS) Then
                    strAccess = "NOACCESS"
                ElseIf (objSnmp.Access = objConstants.asMIB_ACCESS_NOTIFY) Then
                    strAccess = "NOTIFY"
                ElseIf (objSnmp.Access = objConstants.asMIB_ACCESS_READONLY) Then
                    strAccess = "READONLY"
                ElseIf (objSnmp.Access = objConstants.asMIB_ACCESS_WRITEONLY) Then
                    strAccess = "WRITEONLY"
                ElseIf (objSnmp.Access = objConstants.asMIB_ACCESS_READWRITE) Then
                    strAccess = "READWRITE"
                ElseIf (objSnmp.Access = objConstants.asMIB_ACCESS_READCREATE) Then
                    strAccess = "READCREATE"
                Else
                    strAccess = "n/a"
                End If

                If (objSnmp.Status = objConstants.asMIB_STATUS_CURRENT) Then
                    strStatus = "CURRENT"
                ElseIf (objSnmp.Status = objConstants.asMIB_STATUS_DEPRECATED) Then
                    strStatus = "DEPRECATED"
                ElseIf (objSnmp.Status = objConstants.asMIB_STATUS_OBSOLETE) Then
                    strStatus = "OBSOLETE"
                ElseIf (objSnmp.Status = objConstants.asMIB_STATUS_MANDATORY) Then
                    strStatus = "MANDATORY"
                Else
                    strStatus = "n/a"
                End If

                Console.WriteLine("  OID: " & objSnmp.OID.ToString())
                Console.WriteLine("  Description: " & strDescription)
                Console.WriteLine("  Syntax: " & objSnmp.Syntax.ToString())
                Console.WriteLine("  Access: " & strAccess)
                Console.WriteLine("  Status: " & strStatus)
            End If
            objSnmp = objSnmpMIB.GetNext()

        End While
    End Sub

    Private Function ReadInput(ByVal strTitle, ByVal strDefault) As String
        Dim strInput As String = ""
        Console.WriteLine(strTitle)
        Console.Write("  > ")
        strInput = Console.ReadLine()
        If (strInput = "") Then
            strInput = strDefault
        End If
        ReadInput = strInput
    End Function

End Module



     Visual C# .NET Sample: Load a MIB file and browse through it
using System;
using ASOCKETLib;

namespace SnmpMib
{
   /// <summary>
   /// Summary description for SnmpMibBrowser.
   /// </summary>
   class SnmpMib
   {
      /// <summary>
      /// The main entry point for the application.
      /// </summary>
      [STAThread]
      static void Main(string[] args)
      {
      	SnmpMibBrowser		objSnmpMIB = new SnmpMibBrowser();
      	SocketConstants		objConstants = new SocketConstants();
      	string				strMibFile = "";
      	bool				bVerbose = false;
      
      	strMibFile = ReadInput( "Enter MIB file", "c:\\windows\\system32\\mib_ii.mib" );
      	bVerbose = ReadInput( "Verbose output (y/n) ?", "n" ) == "y";
      
      	Console.WriteLine( "MIB File: " + strMibFile );
      	objSnmpMIB.LoadMibFile( strMibFile );
      	Console.WriteLine( "LoadMibFile, result: " + objSnmpMIB.LastError.ToString() );
      	if( objSnmpMIB.LastError == 0 )
      	{
      		ShowMIBTree( objSnmpMIB, objConstants, bVerbose );
      	}
      
      	Console.WriteLine( "Ready." );
      	System.Threading.Thread.Sleep(5000);	// Sleep for 5 seconds 
		}

      static private void ShowMIBTree(SnmpMibBrowser objSnmpMIB,SocketConstants objConstants,
                                      bool bVerbose)
      {
         SnmpObject		objSnmp;
         string			strDescription, strAccess, strStatus;
         Int32			nDescription;
         
         // Start with "iso"
         objSnmp = ( SnmpObject ) objSnmpMIB.Get( "iso" );
         
         while( objSnmpMIB.LastError == 0 )
         {
            Console.WriteLine( objSnmp.Path );
            if( bVerbose )
            {
               strDescription=objSnmp.Description.ToString().Replace("\r\n","[nl]").Replace("\n","[nl]");
               nDescription = strDescription.Length;
               if( nDescription > 40 )
               {
                  strDescription = strDescription.Substring( 0, 40 );
                  strDescription += "...";
               }
               if( objSnmp.Access == objConstants.asMIB_ACCESS_NOACCESS )
               	strAccess = "NOACCESS";
               else if( objSnmp.Access == objConstants.asMIB_ACCESS_NOTIFY )
               	strAccess = "NOTIFY";
               else if( objSnmp.Access == objConstants.asMIB_ACCESS_READONLY )
               	strAccess = "READONLY";
               else if( objSnmp.Access == objConstants.asMIB_ACCESS_WRITEONLY )
               	strAccess = "WRITEONLY";
               else if( objSnmp.Access == objConstants.asMIB_ACCESS_READWRITE )
               	strAccess = "READWRITE";
               else if( objSnmp.Access == objConstants.asMIB_ACCESS_READCREATE )
               	strAccess = "READCREATE";
               else
               	strAccess = "n/a";
               
               if( objSnmp.Status == objConstants.asMIB_STATUS_CURRENT )
               	strStatus = "CURRENT";
               else if( objSnmp.Status == objConstants.asMIB_STATUS_DEPRECATED )
               	strStatus = "DEPRECATED";
               else if( objSnmp.Status == objConstants.asMIB_STATUS_OBSOLETE )
               	strStatus = "OBSOLETE";
               else if( objSnmp.Status == objConstants.asMIB_STATUS_MANDATORY )
               	strStatus = "MANDATORY";
               else
               	strStatus = "n/a";
               
               
               Console.WriteLine( "  OID: " + objSnmp.OID.ToString() );
               Console.WriteLine( "  Description: " + strDescription );
               Console.WriteLine( "  Syntax: " + objSnmp.Syntax.ToString() );
               Console.WriteLine( "  Access: " + strAccess );
               Console.WriteLine( "  Status: " + strStatus );
            }
            objSnmp = ( SnmpObject ) objSnmpMIB.GetNext();
         }
      }

      static private string ReadInput( string strTitle, string strDefault )
      {
         string strInput = "";
         
         Console.WriteLine( strTitle );
         Console.Write("  > ");
         strInput = Console.ReadLine();
         if( strInput == "" ) 
         	strInput = strDefault;
         return strInput;
      }
	}
}


On ftp.activexperts-labs.com, you can find a lot of ActiveSocket samples. These samples are also part of the ActiveSocket installation.
Visit ftp.activexperts-labs.com »




Copyright ©1999-2007 ActiveXperts Software. All rights reserved.