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.