SNMP octetstring, How do I "decode" it?

183 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 best solutions below

0
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.