2011-01-24 344 views
3

如何使用NET-SNMP API獲取OID的語法類型和讀/寫訪問權限?使用Net-SNMP API從MIB獲取OID的類型(語法)

我正在寫一個SNMP工具,它使用SNMP協議讀取和設置遠程計算機上的值。在設置該值之前,我需要從MIB文件中檢查其類型和訪問權限(是否允許將該值寫入服務器)。

不幸的是,我找不到任何關於如何在Net-SNMP文檔中這樣做的提及。

回答

2

粗略地說:

 
    oid name[128]; 
    size_t name_length = OID_LENGTH(name); 
    strict tree *tp; 

    read_objid("sysContact.0", &name, &name_length); 
    tp = get_tree(name, name_length, get_tree_head(); 

然後去翻爲樹形結構中的net-snmp /庫/ parse.h中的文件和所有你需要的良好的數據裏面。

另請參閱apps/snmptranslate.c文件以獲取更多示例。

0

什麼Wes說應該可以爲你想要做的。或者,在您的實現中,要明確檢查設置值的輸入類型,請使用netsnmp_check_vb_type()。爲了檢查權限,如果嘗試修改沒有寫入權限的字段(如相關MIB中定義的),則net-snmp將引發不可寫錯誤。