snmp2_walk
(PHP >= 5.2.0)
snmp2_walk — Fetch all the SNMP objects from an agent
Description
$host
, string $community
, string $object_id
[, string $timeout
= 1000000
[, string $retries
= 5
]] )
snmp2_walk() function is used to read all the values from
an SNMP agent specified by the hostname
.
Parameters
-
host
-
The SNMP agent (server).
-
community
-
The read community.
-
object_id
-
If
NULL
,object_id
is taken as the root of the SNMP objects tree and all objects under that tree are returned as an array.If
object_id
is specified, all the SNMP objects below thatobject_id
are returned. -
timeout
-
The number of microseconds until the first timeout.
-
retries
-
The number of times to retry if timeouts occur.
Return Values
Returns an array of SNMP object values starting from the
object_id
as root or FALSE
on error.
Examples
Example #1 snm2_pwalk() Example
<?php
$a = snmp2_walk("127.0.0.1", "public", "");
foreach ($a as $val) {
echo "$val\n";
}
?>
Above function call would return all the SNMP objects from the SNMP agent running on localhost. One can step through the values with a loop
See Also
- snmp2_real_walk() - Return all objects including their respective object ID within the specified one
- snmp_get_quick_print
- snmp_get_valueretrieval
- snmp_read_mib
- snmp_set_enum_print
- snmp_set_oid_numeric_print
- snmp_set_oid_output_format
- snmp_set_quick_print
- snmp_set_valueretrieval
- snmp2_get
- snmp2_getnext
- snmp2_real_walk
- snmp2_set
- snmp2_walk
- snmp3_get
- snmp3_getnext
- snmp3_real_walk
- snmp3_set
- snmp3_walk
- snmpget
- snmpgetnext
- snmprealwalk
- snmpset
- snmpwalk
- snmpwalkoid
Коментарии
After some testing, I have found that SNMPWalk is considerably slower than multiple SNMPGet.
I was aiming to retrieve 6 Objects from a MIB; the device being polled was attached via a 100mbps network link.
I decided to run SNMPGet within a loop to retrieve each Object from the specified OID's.
As these OID's were within the same tree, I then thought about using walk as this would consolidate the data into a single request. I then walked the tree to get the same result.
I subsequently testing the time it took to retrieve this information via microtime().
As a result, you can retrieve 1 walk containing 6 OID's within the same time as requesting 18 OIDs via get.
I hope this helps someone whom is looking to speed up their SNMP requests.
Honestly not that important but there's a spelling error in Example #1: "Snm2_pwalk"
Best to fix it so it doesn't confuse.