PHP Conference Nagoya 2025

SNMP::walk

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::walkRécupère le sous-objet d'un objet SNMP

Description

public SNMP::walk(
    array|string $objectId,
    bool $suffixAsKey = false,
    int $maxRepetitions = -1,
    int $nonRepeaters = -1
): array|false

SNMP::walk() est utilisé pour lire le sous-objet SNMP dont la profondeur est spécifiée par le paramètre object_id.

Liste de paramètres

objectId

Racine du sous-objet à lire

suffixAsKey

Par défaut, la notation complète de l'OID est utilisée pour les clés dans le tableau résultant. Si définit à true, le préfixe du sous-objet sera supprimé des clés, ne laissant ainsi que le suffixe de object_id.

nonRepeaters

Spécifie le nombre de variables fournies qui ne doivent pas être répétées. Par défaut, cette valeur sera utilisée depuis l'objet SNMP.

maxRepetitions

Spécifie le nombre maximal d'itérations sur les variables répétées. Par défaut, cette valeur sera utilisée depuis l'objet SNMP .

Valeurs de retour

Retourne un tableau associatif d'identifiants d'objets SNMP ainsi que leurs valeurs en cas de succès ou false si une erreur survient. Lorsqu'une erreur SNMP survient, SNMP::get_errno() et SNMP::get_error() peuvent être utilisées pour récupérer respectivement le numéro de l'erreur (spécifique à l'extension SNMP, voir les constantes de la classe) ainsi que le message d'erreur.

Erreurs / Exceptions

Cette méthode ne lance aucune exception par défaut. Pour activer l'émission d'exceptions SNMPException lorsque des erreurs de la bibliothèque surviennent, le paramètre de la classe SNMP exceptions_enabled doit être défini à la valeur correspondante. Voir les explications sur SNMP::$exceptions_enabled pour plus de détails.

Exemples

Exemple #1 Exemple avec SNMP::walk()

<?php
$session
= new SNMP(SNMP_VERSION_1, "127.0.0.1", "public");
$fulltree = $session->walk(".");
print_r($fulltree);
$session->close();
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [SNMPv2-MIB::sysDescr.0] => STRING: Test server
    [SNMPv2-MIB::sysObjectID.0] => OID: NET-SNMP-MIB::netSnmpAgentOIDs.8
    [DISMAN-EVENT-MIB::sysUpTimeInstance] => Timeticks: (1150681750) 133 days, 4:20:17.50
    [SNMPv2-MIB::sysContact.0] => STRING: Nobody
    [SNMPv2-MIB::sysName.0] => STRING: server.localdomain
    ...
)

Exemple #2 Exemple avec la paramètre suffixAsKey

Le paramètre suffixAsKey peut être utilisé lors de la fusion de plusieurs sous-objets SNMP en un seul. Cet exemple lie les noms d'interfaces et leurs types.

<?php
$session
= new SNMP(SNMP_VERSION_1, "127.0.0.1", "public");
$session->valueretrieval = SNMP_VALUE_PLAIN;
$ifDescr = $session->walk(".1.3.6.1.2.1.2.2.1.2", TRUE);
$session->valueretrieval = SNMP_VALUE_LIBRARY;
$ifType = $session->walk(".1.3.6.1.2.1.2.2.1.3", TRUE);
print_r($ifDescr);
print_r($ifType);
$result = array();
foreach(
$ifDescr as $i => $n) {
$result[$n] = $ifType[$i];
}
print_r($result);
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [1] => igb0
    [2] => igb1
    [3] => ipfw0
    [4] => lo0
    [5] => lagg0
)
Array
(
    [1] => INTEGER: ieee8023adLag(161)
    [2] => INTEGER: ieee8023adLag(161)
    [3] => INTEGER: ethernetCsmacd(6)
    [4] => INTEGER: softwareLoopback(24)
    [5] => INTEGER: ethernetCsmacd(6)
)
Array
(
    [igb0] => INTEGER: ieee8023adLag(161)
    [igb1] => INTEGER: ieee8023adLag(161)
    [ipfw0] => INTEGER: ethernetCsmacd(6)
    [lo0] => INTEGER: softwareLoopback(24)
    [lagg0] => INTEGER: ethernetCsmacd(6)
)

Voir aussi

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top