Honestly not that important but there's a spelling error in Example #1: "Snm2_pwalk"
Best to fix it so it doesn't confuse.(PHP >= 5.2.0, PHP 7, PHP 8)
snmp2_walk — Récupère tous les objets SNMP depuis un agent
$hostname,$community,$object_id,$timeout = -1,$retries = -1
La fonction snmp2_walk() est utilisée pour lire toutes
les valeurs depuis un agent SNMP spécifié par
le paramètre hostname.
hostnamecommunityobject_idnull, 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.
timeoutretries
Retourne un tableau de valeurs d'objet SNMP
en commençant par l'objet object_id
ou false si une erreur survient.
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.
Honestly not that important but there's a spelling error in Example #1: "Snm2_pwalk"
Best to fix it so it doesn't confuse.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.