snmp2_walk()
(PHP >= 5.2.0)
Fetch all the SNMP objects from an agent
说明
snmp2_walk(string $host,string $community,string $object_id[,int $timeout= 1000000[,int $retries= 5]]): array
snmp2_walk() function is used to read all the values from an SNMP agent specified by the$hostname.
参数
- $host
The SNMP agent(server).
- $community
The read community.
- $object_id
If
NULL
,$object_idis taken as the root of the SNMP objects tree and all objects under that tree are returned as an array.If$object_idis specified, all the SNMP objects below that$object_idare returned.
- $timeout
The number of microseconds until the first timeout.
- $retries
The number of times to retry if timeouts occur.
返回值
Returns an array of SNMP object values starting from the$object_idas root or FALSE
on error.
范例
Example #1 snmp2_walk() 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
参见
snmp2_real_walk()
Return all objects including their respective object ID within the specified one
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.