问题描述
当查询位于远程网络中的某个供应商设备时,会抛出 SharpSnmpLib SNMP V1 GET snmpexception。其他软件如 iReasoning MIB browser、SNMPB 或 SnmpSharpnet 在相同的 OID 和设备上运行正常。
即使设备相同且 OID 相同但位于不同的网络中,错误也会有所不同。似乎在 UDP 数据包的末尾添加了一个数据段。一台设备的错误消息可能是:“BER 文件结束”,而在另一台相同的设备上,错误消息可能是“不支持的数据类型:34” ”,或“不支持的数据类型:115”等等。在同一个 OID 上发现了许多不同的数据类型,但来自不同的设备。
ParseMessage 例程中的项目源文件“MessageFactory.cs”中出现错误。如果我发现错误并继续程序运行正常。我忽略了未正确解析的数据字节尾随部分的错误。
wireshark 数据包也如下所示:
这是另一块完全相同的 SNMP 设备和 OID 上的另一个错误,只是 IP 地址不同。
似乎尾部数据部分导致 API 抛出错误,因为它无法将其识别为有效变量。然而,其他软件包处理此问题时似乎没有错误消息。除非找到更好的解决方案,否则我将不得不修改 Sharp SNMP 的源代码以使用 API。我的修改涉及捕捉错误并继续前进。循环中的第一个变量已经找到并产生正确的值。从第一个变量继续执行时会发生错误,因为流尚未到达结尾。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)