Start · Sprachen · PHP · Referenz · snmp_get_valueretrieval

snmp_get_valueretrieval

Funktion

Gibt den aktuell gesetzten Modus zurück, der bestimmt, wie SNMP-Werte beim Abruf zurückgegeben werden.

seit PHP 4.0.0 Kategorie: http

Signatur

snmp_get_valueretrieval(): int

Beschreibung

snmp_get_valueretrieval() liefert den aktuell konfigurierten Rückgabemodus für SNMP-Werte. Dieser Modus steuert, in welcher Form die SNMP-Extension Werte aus Netzwerkgeräten zurückliefert – etwa ob Typ-Informationen eingeschlossen werden oder ob Werte als einfache Strings zurückgegeben werden.

Der Rückgabewert ist eine Bitmaske aus den Konstanten SNMP_VALUE_LIBRARY, SNMP_VALUE_PLAIN und SNMP_VALUE_OBJECT. Der Standardwert ist SNMP_VALUE_LIBRARY, wodurch Werte im nativen Format der Net-SNMP-Bibliothek zurückgegeben werden.

Die Funktion arbeitet als Gegenstück zu snmp_set_valueretrieval() und erlaubt es, den aktuellen Zustand abzufragen, bevor er temporär geändert und später wiederhergestellt wird. Dies ist besonders nützlich in Bibliotheken oder Modulen, die den globalen Zustand nicht dauerhaft verändern wollen.

Rückgabewert

Typ
int
Beschreibung
Gibt eine Integer-Bitmaske zurück, die den aktuellen Rückgabemodus für SNMP-Werte beschreibt. Mögliche Werte sind SNMP_VALUE_LIBRARY (0), SNMP_VALUE_PLAIN (1) und SNMP_VALUE_OBJECT (2).

Beispiele

Aktuellen Rückgabemodus abfragen

<?php
// Aktuellen Modus abfragen
$currentMode = snmp_get_valueretrieval();

switch ($currentMode) {
    case SNMP_VALUE_LIBRARY:
        echo 'Modus: SNMP_VALUE_LIBRARY (Net-SNMP-Format)' . PHP_EOL;
        break;
    case SNMP_VALUE_PLAIN:
        echo 'Modus: SNMP_VALUE_PLAIN (einfache Strings)' . PHP_EOL;
        break;
    case SNMP_VALUE_OBJECT:
        echo 'Modus: SNMP_VALUE_OBJECT (Objekte mit Typ und Wert)' . PHP_EOL;
        break;
    default:
        echo 'Kombinierter Modus: ' . $currentMode . PHP_EOL;
}
Modus: SNMP_VALUE_LIBRARY (Net-SNMP-Format)

Modus temporär ändern und wiederherstellen

<?php
// Aktuellen Modus sichern
$previousMode = snmp_get_valueretrieval();

// Temporär auf SNMP_VALUE_OBJECT umschalten
snmp_set_valueretrieval(SNMP_VALUE_OBJECT);

// SNMP-Abfrage im Objekt-Modus durchführen
$result = snmpget('192.168.1.1', 'public', 'sysDescr.0');
if ($result !== false) {
    // $result ist jetzt ein Objekt mit Typ- und Wert-Eigenschaften
    var_dump($result);
}

// Ursprünglichen Modus wiederherstellen
snmp_set_valueretrieval($previousMode);

echo 'Modus wiederhergestellt: ' . snmp_get_valueretrieval() . PHP_EOL;
Modus wiederhergestellt: 0

// Wichtig · Fallstricke

Globaler Zustand: Der Rückgabemodus ist ein globaler Zustand der SNMP-Extension. Änderungen durch snmp_set_valueretrieval() wirken sich auf alle nachfolgenden SNMP-Aufrufe innerhalb desselben PHP-Prozesses aus. Es empfiehlt sich daher, den alten Modus vor einer Änderung mit snmp_get_valueretrieval() zu sichern und nach der Operation wiederherzustellen.

Klassen-basierte API: Ab PHP 5.4 steht die objektorientierte SNMP-Klasse zur Verfügung, die eine instanzbasierte Konfiguration ohne globalen Zustand ermöglicht und daher für neue Projekte bevorzugt werden sollte.