(PHP >= 5.2.0, PHP 7, PHP 8)
snmp2_set — Устанавливает значение объекта SNMP
$hostname,$community,$object_id,$type,$value,$timeout = -1,$retries = -1
snmp2_set() используется для установки значения объекта
SNMP, указанного в object_id.
hostnamecommunityobject_idtypeOPAQUE_SPECIAL_TYPES:
Типы
type
для каждого идентификатора объекта, если MIB-файлы загружаются в MIB-дерево функцией snmp_read_mib
или путём указания в конфигурационном файле библиотеки libsnmp, поскольку тогда функция
автоматически считает тип из базы MIB.
Обратите внимание, что переменную типа BITS устанавливают двумя способами,
например,
"SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":
valuetimeoutretries
Функция возвращает true , если выполнилась успешно, или false , если возникла ошибка.
Если хост SNMP отклоняет тип данных, выводится ошибка уровня E_WARNING вроде "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length.". Если указан неизвестный или недопустимый OID, вероятно, выведется предупреждение "Could not add variable".
| Версия | Описание |
|---|---|
| 8.5.0 | Теперь функция выбрасывает исключение ValueError , когда длина имени хоста равна или превышает 128 байт, когда порт отрицательный или превышает 65535, либо когда значения timeout или retries меньше -1 или слишком большие. |
Пример #1 Пример использования snmp2_set()
<?php
snmp2_set("localhost", "public", "IF-MIB::ifAlias.3", "s", "foo");
?>Пример #2 Пример использования snmp2_set() для установки BITS идентификатору объекта SNMP
<?php
snmp2_set("localhost", "public", 'FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// или
snmp2_set("localhost", "public", 'FOO-MIB::bar.42', 'x', 'F0');
?>The "type" parameter must be one of the following, depending on the type of variable to set on the SNMP host:
i INTEGER
u unsigned INTEGER
t TIMETICKS
a IPADDRESS
o OBJID
s STRING
x HEX STRING
d DECIMAL STRING
If OPAQUE_SPECIAL_TYPES was defined while compiling the SNMP library, the following are also valid:
U unsigned int64
I signed int64
F float
D double