snmp2_set
(PHP >= 5.2.0, PHP 7, PHP 8)
snmp2_set — Устанавливает значение объекта SNMP
Описание
snmp2_set(
string $hostname
,
string $community
,
array|string $object_id
,
array|string $type
,
array|string $value
,
int $timeout
= -1,
int $retries
= -1
): bool
Список параметров
-
hostname
-
Имя хоста агента (сервера) SNMP.
-
community
-
Write-сообщество.
-
object_id
-
Идентификатор объекта SNMP.
-
type
-
MIB указывает тип идентификатора каждого объекта. Он должен быть указан в виде одного символа из
следующего списка.
types
= | Тип, принимаемый MIB |
i | INTEGER |
u | INTEGER |
s | STRING |
x | HEX STRING |
d | DECIMAL STRING |
n | NULLOBJ |
o | OBJID |
t | TIMETICKS |
a | IPADDRESS |
b | BITS |
Если при компиляции библиотеки SNMP была определена
опция OPAQUE_SPECIAL_TYPES
, то также могут быть использованы
следующие типы:
types
U | unsigned int64 |
I | signed int64 |
F | float |
D | double |
Большинство этих значений используют очевидный тип ASN.1.
's', 'x', 'd' и 'b' — это
все разные способы указания значения OCTET STRING, а
беззнаковый тип 'u' также используется для обработки
значений Gauge32.
Если MIB-файлы были загружены в MIB-дерево с помощью "snmp_read_mib"
или были указаны в конфигурационном файле libsnmp, то для указания
параметра type
можно использовать нотацию
'=', т.к. тип всех идентификаторов объектов будет автоматически
считан из MIB.
Обратите внимание, что есть два способа установить переменную
типа BITS, например,
"SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":
-
С помощью типа "b" и списка битовых чисел. Не рекомендуется использовать этот метод,
т.к. GET-запрос для того же OID вернёт, к примеру, 0xF8.
-
С помощью типа "x" и шестнадцатеричного числа, но без(!) обычного префикса "0x".
Подробнее смотрите в разделе с примерами.
-
value
-
Новое значение.
-
timeout
-
Время ожидания в микросекундах.
-
retries
-
Количество повторных попыток при истечении времени ожидания.
Возвращаемые значения
Возвращает 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".
Примеры
Пример #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');
?>