SNMP octetstring, How do I "decode" it?

178 views Asked by At

I have a macro that reads the values from all printers at work.
There is one value I just can't decode.

Using this code

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")

I get this in the immediate window:

ß 0

enter image description here

When I use SNMPWalk I get this octetstring:

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

From all that I can understand, the value in plain text should be 2015-06-20 since this OID is the date of installation of the machine.
And according to the webUI of the printer that is the date.

enter image description here

I have tried to find how to decode it using the MIB but I can't find anything about this value.
https://infoserve.lexmark.com/ids/ifc/ids_topic.aspx?root=kb20211110015949938&topic=FA615&productCode=Lexmark_MX410&loc=en_IN

Anyone have any hints on decoding the octetstring?

1

There are 1 answers

0
Lex Li On

OCTET STRING is only used to pass bytes over the wire. You need to know the actual text convention for .1.3.6.1.4.1.641.6.2.3.1.7.1 from the MIB document, and that's

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 }

You should decode the data following the rule of DateAndTime and I wrote about that in this article.