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

问题描述 投票:0回答:1

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

使用此代码

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

当我使用 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

据我所知,纯文本的值应该是

2015-06-20
,因为这个OID是机器的安装日期。
并根据打印机的WebUI即为日期。

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

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

excel vba snmp octetstring
1个回答
0
投票

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
的规则解码数据,我在 这篇文章中写过这一点。

© www.soinside.com 2019 - 2024. All rights reserved.