SNMP
PHP Manual

SNMP::walk

(PHP 5 >= 5.4.0, PHP 7)

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

Description

public array SNMP::walk ( string $object_id [, bool $suffix_as_key = FALSE [, int $max_repetitions [, int $non_repeaters ]]] )

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

object_id

Racine du sous-objet à lire

suffix_as_key

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.

non_repeaters

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.

max_repetitions

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();
?>

L'exemple ci-dessus va afficher quelque chose de 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 suffix_as_key

Le paramètre suffix_as_key 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);
?>

L'exemple ci-dessus va afficher quelque chose de 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


SNMP
PHP Manual