c ++ - net-snmp prøvekode til at analysere MIB-fil og uddrag fælde relateret information fra den

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg bruger net-snmp C biblioteket på Windows. Jeg vil analysere fælde-relaterede oplysninger fra MIB-filerne.


Jeg har brug for nogle eksempler kode for at gøre dette. Jeg fandt ikke noget nyttigt på http://www.net-snmp.org/[2]

Bedste reference


Her er nogle eksempler på kode for at analysere MIB-filer ved hjælp af net-snmp-biblioteket.
Inden du bruger denne kode, skal du referere eller tilføje Include and Lib-mapper af net-snmp i dine projektegenskaber:


#include "stdafx.h"
#include <net-snmp/net-snmp-config.h>
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/definitions.h>
#include <net-snmp/library/tools.h>
#include <net-snmp/mib\_api.h>
#include <net-snmp/library/mib.h>
#include <net-snmp/library/parse.h>

int \_tmain(int argc, \_TCHAR* argv[])
{
    struct tree *tp;
    struct tree *tree\_head = NULL ;
    FILE *fp = NULL;

    char str[] = "c:\MyMIBFileDir\My.mib";

    netsnmp\_ds\_set\_int(NETSNMP\_DS\_LIBRARY\_ID, NETSNMP\_DS\_LIB\_MIB\_WARNINGS , 2);
    netsnmp\_ds\_toggle\_boolean(NETSNMP\_DS\_LIBRARY\_ID, NETSNMP\_DS\_LIB\_SAVE\_MIB\_DESCRS);

    netsnmp\_init\_mib();

    add\_mibdir("c:\MyMIBFileDir\");

    tree\_head = read\_mib(str);

    if ( tree\_head )
    {
        //Successfully parsed the MIB
    }

    // Full traversal of the subtree
    for (tp = tree\_head; tp; tp = tp->next\_peer)
        // Here you can do custom parsing

    fclose(fp);

    return 0;
}