PHP Conference Nagoya 2025

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