SNMP::walk

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

SNMP::walkRecupera el sub-objeto de un objeto SNMP

Descripción

public 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 ninguna excepción de manera predeterminada. Para poder lanzar una excepción SNMPException cuando ocurre alguno de los errores de la biblioteca el parámetro exceptions_enabled de la clase SNMP se debería establecer al valor correspondiente. Véase la explicación de 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();
?>

El resultado del ejemplo sería algo 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);
?>

El resultado del ejemplo sería algo 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

add a note

User Contributed Notes

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