PHP Conference Nagoya 2025

snmp2_walk

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

snmp2_walkПолучает все объекты SNMP из агента

Описание

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

Функция snmp2_walk() используется для чтения всех значений из агента SNMP, указанного в hostname.

Список параметров

hostname

Агент SNMP (сервер).

community

Read-сообщество.

object_id

Если null, object_id берётся в качестве корня дерева объектов SNMP и все объекты этого дерева возвращаются в виде массива.

Если указан object_id, возвращаются все объекты SNMP ниже этого object_id.

timeout

Время ожидания в микросекундах.

retries

Количество повторных попыток при истечении времени ожидания.

Возвращаемые значения

Возвращает массив значений объекта SNMP, начиная с object_id в качестве корня или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования snmp2_walk()

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

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

?>

Вызов функции вернёт все объекты SNMP из агента SNMP, работающего на localhost. Можно перемещаться по значениям с помощью цикла.

Смотрите также

  • snmp2_real_walk() - Возвращает все объекты, включая их идентификатор

Добавить

Примечания пользователей 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