如何从 MIB 获取 DisplayString 大小限制?

How get DisplayString size constraits from MIB?

我在 MIB 中有这个对象

 userId            OBJECT-TYPE
    SYNTAX          DisplayString (SIZE(0..30))
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
    "Id for user"
    REFERENCE "CFG:WRITE"
    ::= { config 1 }

我通过 snmp 请求访问这个对象。使用 snm4j。
但是当我执行这段代码时

VariableBinding vb = res.get(j);
Variable v = vb.getVariable();
log.debug(vb.getVariable().getSyntaxString());

它 return 只有 "OCTET STRING" 而与 SIZE(0..30)

无关 我可以使用 snmp4j 通过 snmp get 请求获取有关 SIZE(0..30) 的信息吗?

为了扩展 Lex Li 的评论,您正在使用的 snmp4j class 没有 MIB 信息。它只解码网络字节中看到的类型信息。您可以看到,例如使用 Wireshark,发送的字节不包括任何大小限制。

为了了解约束,您必须在解码 SNMP PDU 之前阅读 MIB 文件。通常 enterprise-grade SNMP 管理器会加载托管代理的 MIB 文件以执行此操作。正如 Lex 所说,SNMP4J 库在免费版本中不执行此操作。 SMI Pro version,如果您需要该功能。