net-snmp示例代码,用于解析MIB文件并从中提取陷阱相关信息

时间:2011-09-07 07:18:16

标签: c++ windows snmp mib snmp-trap

我在Windows上使用net-snmp C库。我想从MIB文件中解析与陷阱相关的信息。

我需要一些示例代码才能执行此操作。我在http://www.net-snmp.org/

上找不到任何有用的内容

1 个答案:

答案 0 :(得分:11)

以下是使用net-snmp库解析MIB文件的示例代码。 在使用此代码之前,您需要在项目属性中引用或添加net-snmp的Include和Lib目录:

#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;
}