Java 如何从MIB获取显示字符串大小构造?

Java 如何从MIB获取显示字符串大小构造?,java,size,snmp,mib,snmp4j,Java,Size,Snmp,Mib,Snmp4j,我在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请求访问此对象。使用s

我在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());
它只返回“八进制字符串”,不返回大小(0..30)


我可以使用snmp4j通过snmpget请求获得关于大小(0..30)的信息吗?

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


为了了解约束,您必须在解码SNMP PDU之前读取MIB文件。通常,企业级SNMP管理器会为托管代理加载MIB文件,以便执行此操作。正如Lex所说,SNMP4J库在免费版本中不这样做。如果您需要该功能,还有一个选项。

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


为了了解约束,您必须在解码SNMP PDU之前读取MIB文件。通常,企业级SNMP管理器会为托管代理加载MIB文件,以便执行此操作。正如Lex所说,SNMP4J库在免费版本中不这样做。如果您需要该功能,还有一个问题。

它的SMI/MIB支持不是免费的,它的SMI/MIB支持不是免费的,谢谢,我已经使用Wireshark调查了SNMP流量,并得出了相同的结论。好的,酷!很高兴你解决了你的问题。也请看一下这个页面:谢谢,我已经使用Wireshark调查了SNMP流量,并得出了相同的结论。好的,酷!很高兴你解决了你的问题。请也看看这一页: