(PHP 5 >= 5.4.0, PHP 7, PHP 8)
SNMP::set — Define o valor de um objeto SNMP
Solicita ao agente SNMP remoto que defina o valor de
um ou mais objetos SNMP especificados pelo objectId.
Se objectId for string, tanto
type quanto value também devem ser
string. Se objectId for array,
value deve ser um array de tamanho igual contendo
os valores correspondentes. type pode ser
string (seu valor será usado para todos os pares
objectId-value) ou
um array de tamanho igual com valor por OID. Quando qualquer outra combinação de parâmetros for
usada, várias mensagens E_WARNING podem ser exibidas com descrição detalhada.
objectIdtype| = | O tipo é retirado do MIB |
| i | INTEGER |
| u | INTEGER |
| s | STRING |
| x | HEX STRING |
| d | DECIMAL STRING |
| n | NULLOBJ |
| o | OBJID |
| t | TIMETICKS |
| a | IPADDRESS |
| b | BITS |
OPAQUE_SPECIAL_TYPES foi definida ao compilar a biblioteca SNMP, os seguintes tipos também são válidos:
| U | unsigned int64 |
| I | signed int64 |
| F | float |
| D | double |
type para todos os IDs de objeto, pois o tipo pode ser lido automaticamente a partir do MIB.
Note que existem duas maneiras de definir uma variável do tipo BITS como, por exemplo,
"SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":
value
Esse método não lança nenhuma exceção por padrão.
Para habilitar o lançamento de exceções SNMPException quando ocorrer algum dos erros da biblioteca,
o parâmetro exceptions_enabled da classe SNMP
deve ser definido com um valor correspondente. Consulte a
explicação sobre SNMP::$exceptions_enabled para mais detalhes.
Exemplo #1 Definindo um único ID de objeto SNMP
<?php
$session = new SNMP(SNMP::VERSION_2C, "127.0.0.1", "private");
$session->set('SNMPv2-MIB::sysContact.0', 's', "Nobody");
?>Exemplo #2 Definindo múltiplos valores usando uma única chamada 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"));
// ou
$session->set(array('SNMPv2-MIB::sysContact.0', 'SNMPv2-MIB::sysLocation.0'), 's', array("Nobody", "Nowhere"));
?>Exemplo #3 Usando SNMP::set() para definir o ID do objeto SNMP BITS
<?php
$session = new SNMP(SNMP::VERSION_2C, "127.0.0.1", "private");
$session->set('FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// ou
$session->set('FOO-MIB::bar.42', 'x', 'F0');
?>