PHP Conference Nagoya 2025

snmp2_walk

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

snmp2_walkFetch all the SNMP objects from an agent

Description

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.

Parameters

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.

Return Values

Returns an array of SNMP object values starting from the object_id as root or false on error.

Examples

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

See Also

  • snmp2_real_walk() - Return all objects including their respective object ID within the specified one

add a note

User Contributed Notes 2 notes

up
2
Adam
12 years ago
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.
up
0
Ypera123 at gmail dot com
7 years ago
Honestly not that important but there's a spelling error in Example #1: "Snm2_pwalk"
Best to fix it so it doesn't confuse.
To Top