SNMP八位字节字符串,如何“解码”它?

SNMP octetstring, How do I "decode" it?

提问人:Andreas 提问时间:11/16/2023 更新时间:11/16/2023 访问量:62

问:

我有一个宏,可以从工作中的所有打印机读取值。
有一个值我无法解码。

使用此代码

Set objSNMP = CreateObject("OlePrn.OleSNMP")
objSNMP.Open "10.158.110.8", "public", 2, 10000
Debug.Print objSNMP.get(".1.3.6.1.4.1.641.6.2.3.1.7.1")

我在即时窗口中得到这个:

ß 0

enter image description here

当我使用SNMPWalk时,我得到这个八位字节字符串:

OID=.1.3.6.1.4.1.641.6.2.3.1.7.1, Type=OctetString, Value=  07 DF 06 14 0D 30 0E 00 00 00 00 00

据我所知,纯文本中的值应该是,因为此 OID 是机器的安装日期。
根据打印机的webUI,即日期。
2015-06-20

enter image description here

我试图找到如何使用MIB对其进行解码,但我找不到有关此值的任何信息。
https://infoserve.lexmark.com/ids/ifc/ids_topic.aspx?root=kb20211110015949938&topic=FA615&productCode=Lexmark_MX410&loc=en_IN

有人对解码八位字节字符串有任何提示吗?

Excel VBA SNMP 八位字节字符串

评论

2赞 Tom Brunberg 11/16/2023
好吧,(H 代表十六进制,D 代表十进制)H = D , H = D , 十六进制 = 12 月 IOW 日期:2015-06-20,H = D , H = D ,H = D IOW 时间:13:48:1507 DF201506614200D1330480E15

答:

1赞 Lex Li 11/16/2023 #1

OCTET STRING仅用于通过网络传递字节。您需要从 MIB 文档中了解实际的文本约定,这就是.1.3.6.1.4.1.641.6.2.3.1.7.1

deviceInstallDate OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The install date of the device.  This information should be provided
         by the attached device"
    ::= { deviceEntry 7 }

您应该按照以下规则解码数据,我在本文中写过。DateAndTime