
Hi.
I am trying to use libsmi, on Debian, to resolve numeric OIDs (e.g.1.3.6.1.2.1.2.2.1.6.1) into human readable format (e.g. IF-MIB::ifPhysAddress.1).
I installed libsmi2:
neolink@debian:~$ dpkg --list | grep libsmi ii libsmi2-common 0.4.7+dfsg-0.1 A library to access SMI MIB information (MIB module files) ii libsmi2-dev 0.4.7+dfsg-0.1 A library to access SMI MIB information (development files) ii libsmi2ldbl 0.4.7+dfsg-0.1 A library to access SMI MIB information
I tried to use this function:
SmiNode *smiGetNodeByOID(unsigned int oidlen, SmiSubid oid[]);
#include <stdio.h> #include <string.h> #include <smi.h>
int main(int argc, char *argv[]) { SmiNode *smiNode; int oidlen, first = 1;
smiInit(NULL);
SmiSubid oidArray[11] = {1,3,6,1,2,1,2,2,1,6,1};
for((smiNode = smiGetNodeByOID(11,oidArray)) && (oidlen = smiNode->oidlen); smiNode && (first || smiNode->oidlen > oidlen); smiNode = smiGetNextNode(smiNode, SMI_NODEKIND_ANY),first = 0) { printf("%*s%-32s\n",(smiNode->oidlen - oidlen + 1) * 2, " ",smiNode->name); };
exit(0); }
root@debian:/home/neolink# gcc -o libsmi_code_test libsmi_code_test.c -lsmi root@debian:/home/neolink# ./libsmi_code_test iso root@debian:/home/neolink#
Anybody can help me?
Thank.