PHP 8.4.2 Released!

SNMP::set

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::setУстанавливает значение объекта SNMP

Описание

public SNMP::set(array|string $objectId, array|string $type, array|string $value): bool

Запрашивает удалённый агент SNMP, устанавливающий значение одного или нескольких объектов SNMP, указанных в objectId.

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

Если objectId - это строка (string), оба type и value также должны быть строками (string). Если objectId - массив (array), value должен быть массивом равного размера, содержащим соответствующие значения, type может быть либо строкой (string) (это значение будет использоваться для всех пар objectId-value) или массив равного размера с каждым значением OID. Когда используются комбинации любых других параметров, может отображаться ряд сообщений E_WARNING с подробным описанием.

objectId

Идентификатор объекта SNMP

Когда количество OID в массиве object_id больше, чем max_oids, метод набора свойств объекта должен будет использовать несколько запросов для выполнения запрошенных обновлений значений. В этом случае проверки типа и значения выполняются для каждого фрагмента, поэтому второй или последующие запросы могут завершиться ошибкой из-за неправильного типа или значения запрошенного OID. Чтобы сообщить об этом, появляется предупреждение, когда количество OID в массиве object_id превышает max_oids.

type

База управляющей информации MIB определяет для каждого объекта тип идентификатора. Тип указывается одним символом из следующего списка.

Типы
=Функция возьмёт тип из базы MIB
iINTEGER
uINTEGER
sSTRING
xHEX STRING
dDECIMAL STRING
nNULLOBJ
oOBJID
tTIMETICKS
aIPADDRESS
bBITS

Следующие типы также допустимы, если при компиляции библиотеки SNMP определили опцию OPAQUE_SPECIAL_TYPES:

Типы
Uunsigned int64
Isigned int64
Ffloat
Ddouble

Бо́льшая часть этих значений использует очевидный тип, который соответствует типу стандарта ASN.1. 's', 'x', 'd' и 'b' — это все разные способы указания значения OCTET STRING, а беззнаковый тип 'u' также указывают для обработки значений Gauge32.

Разрешается указывать тип '=' как значение параметра 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)}":

  • Указывают тип "b" и список битовых чисел. Не рекомендуется использовать этот метод, поскольку GET-запрос для того же OID-идентификатора объекта вернёт, например, 0xF8.
  • Указывают тип "x" и шестнадцатеричное число, но без (!) стандартного префикса "0x".

Раздел с примерами даёт дополнительную информацию.

value

Новое значение.

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

Функция возвращает true, если выполнилась успешно, или false, если возникла ошибка.

Ошибки

По умолчанию метод не выбрасывает исключений. Выдачу исключений SNMPException при библиотечных ошибках включают путём установки свойству класса SNMP exceptions_enabled значения, которое определит конкретные ошибки, которые вызовут исключение. Подробнее смотрите объяснении свойства SNMP::$exceptions_enabled.

Примеры

Пример #1 Установить одиночный идентификатор объекта SNMP

<?php
$session
= new SNMP(SNMP::VERSION_2C, "127.0.0.1", "private");
$session->set('SNMPv2-MIB::sysContact.0', 's', "Nobody");
?>

Пример #2 Установить несколько значений с помощью одного вызова SNMP::set()

<?php
$session
= new SNMP(SNMP::VERSION_2C, "127.0.0.1", "private");
$session->set(array('SNMPv2-MIB::sysContact.0', 'SNMPv2-MIB::sysLocation.0'), array('s', 's'), array("Nobody", "Nowhere"));
// или
$session->set(array('SNMPv2-MIB::sysContact.0', 'SNMPv2-MIB::sysLocation.0'), 's', array("Nobody", "Nowhere"));
?>

Пример #3 Использование SNMP::set() для установки идентификатора объекта BITS SNMP

<?php
$session
= new SNMP(SNMP::VERSION_2C, "127.0.0.1", "private");
$session->set('FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// или
$session->set('FOO-MIB::bar.42', 'x', 'F0');
?>

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

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top