Recupera el sub-objeto de un objeto SNMP

# SNMP::walk

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

SNMP::walk — Recupera el sub-objeto de un objeto SNMP

### Descripción

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

SNMP::walk() se utiliza para leer el sub-objeto SNMP cuya profundidad está especificada por el argumento `object_id`.

### Parámetros

`objectId`
  Raíz del sub-objeto a leer
`suffixAsKey`
  Por omisión, la notación completa del OID se utiliza para las claves en el array resultante. Si se establece en `true`, el prefijo del sub-objeto será eliminado de las claves, dejando solo el sufijo de object_id.
`nonRepeaters`
  Especifica el número de variables proporcionadas que no deben ser repetidas. Por omisión, este valor será utilizado desde el objeto SNMP.
`maxRepetitions`
  Especifica el número máximo de iteraciones sobre las variables repetidas. Por omisión, este valor será utilizado desde el objeto SNMP.

### Valores devueltos

Devuelve un array asociativo de identificadores de objetos SNMP así como sus valores en caso de éxito o `false` si ocurre un error. Cuando ocurre un error SNMP, SNMP::get_errno() y SNMP::get_error() pueden ser utilizadas para recuperar respectivamente el número del error (específico de la extensión SNMP, ver las constantes de la clase) así como el mensaje de error.

### Errores/Excepciones

Este método no lanza excepciones por omisión. Para activar el lanzamiento de excepciones SNMPException cuando ocurren errores de la biblioteca, el parámetro de la clase SNMP `exceptions_enabled` debe ser definido al valor correspondiente. Ver las explicaciones sobre `SNMP::$exceptions_enabled` para más detalles.

### Ejemplos

Ejemplo #1 Ejemplo con SNMP::walk()

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

Resultado del ejemplo anterior es similar a:

    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
        ...
    )

Ejemplo #2 Ejemplo con el argumento `suffixAsKey`

El argumento `suffixAsKey` puede ser utilizado al fusionar varios sub-objetos SNMP en uno solo. Este ejemplo enlaza los nombres de interfaces y sus tipos.

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

Resultado del ejemplo anterior es similar a:

    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)
    )

### Ver también

- SNMP::getErrno() - Obtiene el último código de error
- SNMP::getError() - Obtiene el último mensaje de error

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open