我正在使用 SNMP4J 读取带有 SNMP 的设备信息。现在我发现了一些将系统名称(OID iso.3.6.1.2.1.1.5.0)表示为十六进制字符串而不是字符串的设备。
要显示系统名称,我使用以下代码:
Variable var = response.getVariable(new OID(".1.3.6.1.2.1.1.5.0"));
System.out.println(var.toString());
其中 response 是一个 PDU 对象。
如果系统名称表示为 STRING 值,则符合我的预期。当它表示为十六进制字符串时,它只打印十六进制值。
示例:
取系统名称为“SYSTEM NAME”。
使用 STRING,它会打印“系统名称”。
使用 Hex-STRING 打印“53:59:53:54:45:4d:20:4e:41:4d:45”
现在在命令行中使用 snmpwalk 我可以使用 -Oa 标志。这使得所有 Hex-STRING 值都显示为 STRING。是否可以在 SNMP4J 中使用此标志,或者是否有类似的选项?