(PHP 5 >= 5.4.0, PHP 7)
SNMP::walk — Récupère le sous-objet d'un objet SNMP
$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.
  
object_idRacine 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_repeatersSpé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_repetitionsSpé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 .
   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.
  
 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.
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)
)