snmp2_walk

(PHP >= 5.2.0, PHP 7, PHP 8)

snmp2_walkFetch all the SNMP objects from an agent

说明

snmp2_walk ( string $hostname , string $community , array|string $object_id , int $timeout = -1 , int $retries = -1 ) : array|false

snmp2_walk() function is used to read all the values from an SNMP agent specified by the hostname.

参数

hostname

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 that object_id are 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_id as 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

User Contributed Notes

Ypera123 at gmail dot com 16-Jan-2017 01:21
Honestly not that important but there's a spelling error in Example #1: "Snm2_pwalk"
Best to fix it so it doesn't confuse.
Adam 09-Apr-2012 03:26
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.
PHP8中文手册 站长在线 整理 版权归PHP文档组所有