如何使用NET-SNMP API獲取OID的語法類型和讀/寫訪問權限?使用Net-SNMP API從MIB獲取OID的類型(語法)
我正在寫一個SNMP工具,它使用SNMP協議讀取和設置遠程計算機上的值。在設置該值之前,我需要從MIB文件中檢查其類型和訪問權限(是否允許將該值寫入服務器)。
不幸的是,我找不到任何關於如何在Net-SNMP文檔中這樣做的提及。
如何使用NET-SNMP API獲取OID的語法類型和讀/寫訪問權限?使用Net-SNMP API從MIB獲取OID的類型(語法)
我正在寫一個SNMP工具,它使用SNMP協議讀取和設置遠程計算機上的值。在設置該值之前,我需要從MIB文件中檢查其類型和訪問權限(是否允許將該值寫入服務器)。
不幸的是,我找不到任何關於如何在Net-SNMP文檔中這樣做的提及。
粗略地說:
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文件以獲取更多示例。
什麼Wes說應該可以爲你想要做的。或者,在您的實現中,要明確檢查設置值的輸入類型,請使用netsnmp_check_vb_type()。爲了檢查權限,如果嘗試修改沒有寫入權限的字段(如相關MIB中定義的),則net-snmp將引發不可寫錯誤。