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

# snmp2_set

(PHP >= 5.2.0, PHP 7, PHP 8)

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

### Описание

function snmp2_set(
string `$hostname`,
string `$community`,
array|string `$object_id`,
array|string `$type`,
array|string `$value`,
int `$timeout` = -1,
int `$retries` = -1
): bool

snmp2_set() используется для установки значения объекта SNMP, указанного в `object_id`.

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

`hostname`
  Имя хоста агента (сервера) SNMP.
`community`
  Write-сообщество.
`object_id`
  Идентификатор объекта SNMP.
`type`
  База управляющей информации MIB определяет для каждого объекта тип идентификатора. Тип указывается одним символом из следующего списка.

  Типы
  = | Функция возьмёт тип из базы 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`:

  Типы
  U | unsigned int64
  I | signed int64
  F | float
  D | double

  Бо́льшая часть этих значений использует очевидный тип, который соответствует типу стандарта 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`
  Новое значение.
`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".

### Список изменений

Версия | Описание
--- | ---
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');
    ?>

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

- snmp2_get() - Получает объект SNMP

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open