2010-12-28 20 views
2

Short Version:
Was bedeutet das (? Hex) Code in onesixtyone bedeuten gefunden?Verständnis onesixtyone SNMP-Tool

char object[] = "\x30\x0e\x30\x0c\x06\x08\x2b\x06\x01\x02\x01\x01\x01\x0\x05\x00"; 

Long Version:
Onesixtyone ist Suchwerkzeug snmp-fähigen Geräten zu finden. Es ist hart codiert, den sysDescr.0-Wert zurückzugeben. Als Nebenprojekt versuche ich es zu verstehen und/oder zu modifizieren, um irgendeinen snmp OID-Wert zurückzugeben. Ich komme aus einem PHP-Hintergrund, aber ich habe PHP verwendet, um Linux-Daemons zu schreiben. Ich habe begrenzte Kenntnisse von hex

Meine Frage: Ich bin immer wieder aufgehängt durch die Methode build_snmp_reg. Mein Verständnis ist, dass es das TCP-Paket spezifiziert, das gesendet wird, aber ich kann nicht verstehen, wo der sysDescr.0 gefunden wird.

+0

Ich werde es nicht für Sie entschlüsseln, aber Sie werden einige Kenntnisse von ASN.1 und den DER-Regeln benötigen. Zum Beispiel bedeutet 0x30 0x0e eine SEQUENZ der Länge 14. Als nächstes sehen wir 0x30 0x0C, was eine SEQUENZ der Länge 12 bedeutet, und dann 0x06 0x08, was eine OID der Länge 8 bedeutet, und so weiter. –

+0

Danke. Das hilft tatsächlich viel kombiniert mit dem, was ich gelesen habe. – zmpeg

Antwort

1

Sie suchen dort einige ziemlich Low-Level-SNMP-Daten. Sie sollten das nicht mit all den SNMP-Tools tun müssen, die das für Sie erledigen.

Dieses Hex, das Sie betrachten, ist die SNMP-PDU-BER-Bytes. Es ist schwierig, Ihre Frage zu beantworten, aber vielleicht hilft eine Website, die SNMP PDU BER erklärt.

Net-SNMP und LibSMI sind, was Sie wahrscheinlich auch betrachten sollten. Suchen Sie nach der Sprache und dem Betriebssystem, in dem Sie programmieren, und finden Sie SNMP-Tools und Bibliotheken für Ihr Projekt.