NET-SNMP API を使用して OID の構文タイプと読み取り/書き込みアクセスを取得するにはどうすればよいですか?
SNMP プロトコルを使用してリモート マシンの値を読み取り、設定する SNMP ツールを作成しています。値を設定する前に、MIB ファイルからそのタイプとアクセス許可 (サーバーにこの値を書き込むことが許可されているかどうか) を確認する必要があります。
残念ながら、Net-SNMP のドキュメントでこれを行う方法についての言及は見つかりませんでした。
大ざっぱに言えば:
oid名[128]; size_t name_length = OID_LENGTH(名前); 厳密なツリー *tp; read_objid("sysContact.0", &name, &name_length); tp = get_tree(name, name_length, get_tree_head();
次に、ツリー構造の net-snmp/library/parse.h ファイルに目を通すと、必要なすべての適切なデータがその中にあります。
その他の例については、apps/snmptranslate.c ファイルも参照してください。
ウェスが言ったことは、おそらくあなたがやろうとしていることでうまくいくはずです. または、実装で設定値の入力タイプを明示的にチェックするには、netsnmp_check_vb_type() を使用します。アクセス許可を確認するために、(関連する MIB で定義されているように) 書き込みアクセスなしでフィールドを変更しようとすると、net-snmp は notWritable エラーをスローします。