Получить тип OID (синтаксис) из MIB, используя Net-SNMP API - PullRequest
4 голосов
/ 24 января 2011

Как получить тип синтаксиса и доступ на чтение / запись для OID с помощью NET-SNMP API?

Я пишу инструмент SNMP, который считывает и устанавливает значения на удаленном компьютере по протоколу SNMP. Перед установкой значения мне нужно проверить его тип и права доступа (разрешено ли записывать это значение на сервер или нет) из файла MIB.

К сожалению, я не смог найти упоминания о том, как это сделать, в документации по Net-SNMP.

Ответы [ 2 ]

4 голосов
/ 25 января 2011

Грубо говоря:

  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 / library / parse.h древовидную структуру, и все нужные вам полезные данные находятся внутри него.

Также см. Файл apps / snmptranslate.c для дальнейших примеров.

0 голосов
/ 25 января 2011

То, что сказал Уэс, вероятно, должно работать на то, что вы пытаетесь сделать. В качестве альтернативы, в вашей реализации, чтобы явно проверить тип ввода заданного значения, используйте netsnmp_check_vb_type (). Для проверки разрешений net-snmp выдаст ошибку notWritable, если вы попытаетесь изменить поле без прав записи (как определено в соответствующей MIB).

...