略微加速

PHP官方手册 - 互联网笔记

PHP - Manual: snmp2_walk

2024-11-13

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.

范例

示例 #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
add a noteadd a note

User Contributed Notes 2 notes

up
0
Ypera123 at gmail dot com
5 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.
up
0
Adam
10 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.

官方地址:https://www.php.net/manual/en/function.snmp2-walk.php

北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3