ConFoo 2025

snmp2_walk

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

snmp2_walkRécupère tous les objets SNMP depuis un agent

Description

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

La fonction snmp2_walk() est utilisée pour lire toutes les valeurs depuis un agent SNMP spécifié par le paramètre hostname.

Liste de paramètres

hostname

L'agent SNMP (serveur).

community

La communauté de lecture.

object_id

Si null, object_id sera la racine de l'arbre des objets SNMP et tous les objets de cet arbre seront retournés sous la forme d'un tableau.

Si object_id est spécifié, tous les objets SNMP sous cet object_id seront retournés.

timeout

Le nombre de microsecondes avant le premier délai d'expiration.

retries

Le nombre de tentatives dans le cas où un délai d'expiration survient.

Valeurs de retour

Retourne un tableau de valeurs d'objet SNMP en commençant par l'objet object_id ou false si une erreur survient.

Exemples

Exemple #1 Exemple avec snmp2_walk()

<?php
$a
= snmp2_walk("127.0.0.1", "public", "");

foreach (
$a as $val) {
echo
"$val\n";
}

?>

La fonction ci-dessus devrait retourner tous les objets SNMP depuis l'agent SNMP fonctionnant en local. Une étape suivante parcourt les valeurs avec une boucle.

Voir aussi

  • snmp2_real_walk() - Retourne tous les objets incluant les identifiants de leurs objets respectifs

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