snmp2_walk
(PHP >= 5.2.0, PHP 7, PHP 8)
snmp2_walk — すべての SNMP オブジェクトをエージェントから取得する
説明
snmp2_walk(
string
string
array|string
int
int
): array|false
string
$hostname
,string
$community
,array|string
$object_id
,int
$timeout
= -1,int
$retries
= -1): array|false
snmp2_walk() は、
hostname
で指定した SNMP
エージェントからすべての値を読み込みます。
パラメータ
hostname
-
SNMP エージェント (サーバー)。
community
-
リードコミュニティ。
object_id
-
null
の場合はobject_id
は SNMP オブジェクトツリーのルートとなり、 ツリー配下のすべてのオブジェクトを配列で返します。object_id
を指定すると、 そのobject_id
以下のすべての SNMP オブジェクトを返します。 timeout
-
最初のタイムアウトまでのマイクロ秒数。
retries
-
タイムアウト発生時の再試行回数。
戻り値
object_id
をルートとするすべての
SNMP オブジェクトの値の配列、あるいはエラー時に
false
を返します。
例
例1 snmp2_pwalk() の例
<?php
$a = snmp2_walk("127.0.0.1", "public", "");
foreach ($a as $val) {
echo "$val\n";
}
?>
この例は、ローカルホストで動作している SNMP エージェントからすべての SNMP オブジェクトを返します。 この値をループで順次処理することができます。
+add a note
User Contributed Notes 2 notes
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.
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.
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google