Ошибка (noSuchName) в netsnmp api, но snmpget работает просто отлично - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть программа, использующая netsnmp C API для запроса устройства информации snmp. Пока все работает нормально, но когда я опрашивал новый OID (1.3.6.1.2.1.138.1.1.1.3.0 (isisSysID)), он не работает, и я просто получаю ошибку noSuchName, другие OID, такие как IF-MIB работает нормально.

Однако, когда я тестирую с использованием snmpget из той же системы на той же конечной точке, он работает нормально. (v1 или v2 c) snmpget -v2 c - c 1.3.6.1.2.1.138.1.1.1.3.0

Спасибо.

1 Ответ

0 голосов
/ 30 апреля 2020

Разобрался с проблемой, в моем коде я использовал метод get_node для преобразования строки OID в объект OID, используемый для запроса API netsnmp. Это прекрасно работает, если используемый вами OID содержит текст с именованным фрагментом, например, «sysName.0», но не работает, если используемый вами OID полностью числовой ie «1.3.6.1.2.1.138.1.1.1.3.0».

К счастью, существует обходной путь, заключающийся в том, что вы можете сократить этот OID до «mib-2.138.1.1.1.3.0», поскольку «mib-2» является заменой текста для «1.3.6.1.2.1»

...