SNMP::walk - Fetch SNMP object subtree
Вернуться к: SNMP
SNMP::walk
(PHP 5 >= 5.4.0, PHP 7)
SNMP::walk — Fetch SNMP object subtree
Описание
$object_id
[, bool $suffix_as_key
= FALSE
[, int $max_repetitions
[, int $non_repeaters
]]] )
SNMP::walk() is used to read SNMP subtree rooted at specified object_id
.
Список параметров
-
object_id
-
Root of subtree to be fetched
-
suffix_as_key
-
By default full OID notation is used for keys in output array. If set to
TRUE
subtree prefix will be removed from keys leaving only suffix of object_id. -
non_repeaters
-
This specifies the number of supplied variables that should not be iterated over. The default is to use this value from SNMP object.
-
max_repetitions
-
This specifies the maximum number of iterations over the repeating variables. The default is to use this value from SNMP object.
Возвращаемые значения
Returns an associative array of the SNMP object ids and their values on success or FALSE
on error.
When a SNMP error occures SNMP::getErrno() and
SNMP::getError() can be used for retrieving error
number (specific to SNMP extension, see class constants) and error message
respectively.
Ошибки
Данный метод по умолчанию не генерирует исключения.
Чтобы включить генерацию исключения SNMPException при возникновении
некоторых ошибок данной библиотеки, необходимо установить параметр
exceptions_enabled
класса SNMP в
соответствующее значение. Подробнее смотрите в
объяснении параметра SNMP::$exceptions_enabled
.
Примеры
Пример #1 SNMP::walk() example
<?php
$session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
$fulltree = $session->walk(".");
print_r($fulltree);
$session->close();
?>
Результатом выполнения данного примера будет что-то подобное:
Array ( [SNMPv2-MIB::sysDescr.0] => STRING: Test server [SNMPv2-MIB::sysObjectID.0] => OID: NET-SNMP-MIB::netSnmpAgentOIDs.8 [DISMAN-EVENT-MIB::sysUpTimeInstance] => Timeticks: (1150681750) 133 days, 4:20:17.50 [SNMPv2-MIB::sysContact.0] => STRING: Nobody [SNMPv2-MIB::sysName.0] => STRING: server.localdomain ... )
Пример #2 suffix_as_key
example
suffix_as_key
may be used when merging multiple SNMP subtrees into one.
This example maps interface names to their type.
<?php
$session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
$session->valueretrieval = SNMP_VALUE_PLAIN;
$ifDescr = $session->walk(".1.3.6.1.2.1.2.2.1.2", TRUE);
$session->valueretrieval = SNMP_VALUE_LIBRARY;
$ifType = $session->walk(".1.3.6.1.2.1.2.2.1.3", TRUE);
print_r($ifDescr);
print_r($ifType);
$result = array();
foreach($ifDescr as $i => $n) {
$result[$n] = $ifType[$i];
}
print_r($result);
?>
Результатом выполнения данного примера будет что-то подобное:
Array ( [1] => igb0 [2] => igb1 [3] => ipfw0 [4] => lo0 [5] => lagg0 ) Array ( [1] => INTEGER: ieee8023adLag(161) [2] => INTEGER: ieee8023adLag(161) [3] => INTEGER: ethernetCsmacd(6) [4] => INTEGER: softwareLoopback(24) [5] => INTEGER: ethernetCsmacd(6) ) Array ( [igb0] => INTEGER: ieee8023adLag(161) [igb1] => INTEGER: ieee8023adLag(161) [ipfw0] => INTEGER: ethernetCsmacd(6) [lo0] => INTEGER: softwareLoopback(24) [lagg0] => INTEGER: ethernetCsmacd(6) )
Смотрите также
- SNMP::getErrno() - Get last error code
- SNMP::getError() - Get last error message
Вернуться к: SNMP