Исключение SNMP GET snmp, когда ответ в V1 имеет конечные байты данных при использовании SharpSnmpC#

Место общения программистов C#
Ответить
Anonymous
 Исключение SNMP GET snmp, когда ответ в V1 имеет конечные байты данных при использовании SharpSnmp

Сообщение Anonymous »

Исключение SharpSnmpLib SNMP V1 GET snmp выдается при запросе оборудования определенного поставщика, расположенного в удаленных сетях. Другое программное обеспечение, такое как iReasoning MIB Browser, SNMPB или SnmpSharpNet, работает нормально на одном и том же OID и оборудовании.
Ошибка различается, даже если оборудование такое же и OID тот же, но расположен в другом месте. другая сеть. Похоже, в конец UDP-пакета добавляется сегмент данных. На одном оборудовании сообщение об ошибке может быть таким: «Конец файла BER», а на другом идентичном оборудовании сообщение об ошибке может быть «неподдерживаемый тип данных: 34». " или "неподдерживаемый тип данных: 115" и т. д. В одном и том же OID обнаружено множество разных типов данных, но из разных частей оборудования.
Ошибка возникает в исходном файле проекта «MessageFactory.cs» в подпрограмме ParseMessage. Если я поймаю ошибку и продолжу, программа будет работать нормально. Я игнорирую ошибку для конечной части байтов данных, которые не анализируются должным образом.
[img]https://i.sstatic. net/9WXdv.png[/img]

Пакеты Wireshark также показаны ниже:
Изображение

А вот еще одна ошибка на другом фрагменте точно такого же SNMP-устройства и OID , просто другой IP-адрес.
Изображение

Похоже, что завершающая часть данных приводит к тому, что API выдает ошибку, поскольку он не распознает ее как допустимую переменную. Тем не менее, другие пакеты программного обеспечения справляются с этим без появления сообщений об ошибках. Мне придется изменить исходный код Sharp SNMP, чтобы использовать API, если не будет найдено лучшее решение. Моя модификация предполагает обнаружение ошибки и движение дальше. Первая переменная в цикле уже найдена и возвращает правильное значение. Ошибка возникает при продолжении работы с первой переменной, поскольку поток не достиг конца.

Подробнее здесь: https://stackoverflow.com/questions/668 ... n-using-sh
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»