Start · Sprachen · PHP · Referenz · snmp_set_oid_output_format

snmp_set_oid_output_format

Funktion

Setzt das globale Ausgabeformat für OIDs bei SNMP-Abfragen (z. B. numerisch oder symbolisch).

seit PHP 5.2.0 Kategorie: http

Signatur

snmp_set_oid_output_format(int $format): bool

Beschreibung

snmp_set_oid_output_format() legt fest, in welchem Format OIDs (Object Identifiers) bei nachfolgenden SNMP-Funktionsaufrufen zurückgegeben werden. Das betrifft Funktionen wie snmpget(), snmpwalk() und verwandte SNMP-Abfragefunktionen.

Die Funktion akzeptiert eine der vordefinierten Konstanten, die das gewünschte Format beschreiben – von rein numerischen OIDs bis hin zu vollständig symbolisch aufgelösten Namen. Das erleichtert die Lesbarkeit bei der Entwicklung und das maschinelle Verarbeiten bei der Automatisierung.

Typische Einsatzgebiete sind Netzwerkmonitoring-Applikationen und SNMP-basierte Inventarisierungstools, bei denen OIDs entweder für Menschen lesbar oder für den Vergleich mit numerischen Referenzen in einem einheitlichen Format benötigt werden.

  • SNMP_OID_OUTPUT_FULL – vollständiger symbolischer Name (z. B. .iso.org.dod.internet…)
  • SNMP_OID_OUTPUT_NUMERIC – rein numerische OID (z. B. .1.3.6.1.2.1…)
  • SNMP_OID_OUTPUT_MODULE – Modulname und symbolischer Name
  • SNMP_OID_OUTPUT_SUFFIX – nur das letzte OID-Segment
  • SNMP_OID_OUTPUT_UCD – UCD-Stil (älteres Format)
  • SNMP_OID_OUTPUT_NONE – kein Name, nur Index

Parameter

Name Typ Default Beschreibung
$format Pflicht int Eine der SNMP-OID-Format-Konstanten: SNMP_OID_OUTPUT_FULL, SNMP_OID_OUTPUT_NUMERIC, SNMP_OID_OUTPUT_MODULE, SNMP_OID_OUTPUT_SUFFIX, SNMP_OID_OUTPUT_UCD oder SNMP_OID_OUTPUT_NONE.

Rückgabewert

Typ
bool
Beschreibung
Gibt true bei Erfolg zurück, false bei ungültigem Format oder wenn die SNMP-Erweiterung nicht verfügbar ist.

Beispiele

Numerisches OID-Format für SNMP-Abfragen setzen

<?php
// Numerisches Format aktivieren
snmp_set_oid_output_format(SNMP_OID_OUTPUT_NUMERIC);

// SNMP-Abfrage – OIDs werden numerisch zurückgegeben
$result = snmpwalk('192.168.1.1', 'public', 'system');
foreach ($result as $oid => $value) {
    echo $oid . ' => ' . $value . PHP_EOL;
}
.1.3.6.1.2.1.1.1.0 => STRING: Linux router 5.15.0 .1.3.6.1.2.1.1.2.0 => OID: .1.3.6.1.4.1.8072.3.2.10 ...

Symbolisches (vollständiges) OID-Format für bessere Lesbarkeit

<?php
// Vollständig symbolisches Format aktivieren
snmp_set_oid_output_format(SNMP_OID_OUTPUT_FULL);

// SNMP-Abfrage – OIDs werden symbolisch aufgelöst
$result = snmpwalk('192.168.1.1', 'public', 'system');
foreach ($result as $oid => $value) {
    echo $oid . ' => ' . $value . PHP_EOL;
}
.iso.org.dod.internet.mgmt.mib-2.system.sysDescr.0 => STRING: Linux router 5.15.0 ...

// Wichtig · Fallstricke

Globale Wirkung: Das gesetzte Format gilt für alle nachfolgenden SNMP-Aufrufe innerhalb des aktuellen PHP-Prozesses. Bei Verwendung in größeren Anwendungen sollte das Format vor jeder relevanten Abfrage explizit gesetzt werden, um unerwartetes Verhalten durch andere Code-Teile zu vermeiden.

Die SNMP-Erweiterung muss in PHP aktiviert sein (extension=snmp in der php.ini). Die verfügbaren Konstanten sind seit PHP 5.4 vollständig definiert – ältere Versionen unterstützen möglicherweise nicht alle Formate.