SNMP::walk
(PHP 5 >= 5.4.0, PHP 7, PHP 8)
Fetch SNMP object subtree
Description
SNMP::walk is used to read SNMP subtree rooted at specified objectId.
Parameters
objectIdRoot of subtree to be fetched
suffixAsKeyBy default full OID notation is used for keys in output array. If set to true subtree prefix will be removed from keys leaving only suffix of object_id.
nonRepeatersThis specifies the number of supplied variables that should not be iterated over. The default is to use this value from SNMP object.
maxRepetitionsThis specifies the maximum number of iterations over the repeating variables. The default is to use this value from SNMP object.
Return Values
Returns an associative array of the SNMP object ids and their values on success or false on error. When a SNMP error occurs SNMP::getErrno and SNMP::getError can be used for retrieving error number (specific to SNMP extension, see class constants) and error message respectively.
Refsect
Examples
SNMP::walk example
<?php
$session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
$fulltree = $session->walk(".");
print_r($fulltree);
$session->close();
?>The above example will output something similar to:
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
...
)suffixAsKey example
suffixAsKey may be used when merging multiple SNMP subtrees into one. This example maps interface names to their type.
<?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);
?>The above example will output something similar to:
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)
)See Also
SNMP::getErrnoSNMP::getError