(PHP 5 >= 5.4.0, PHP 7, PHP 8)
SNMP::set — Set the value of an SNMP object
Requests remote SNMP agent setting the value of
one or more SNMP objects specified by the objectId
.
If objectId
is string, both
type
and value
must be
string too. If objectId
is array
value
must be equal-sized array containing
corresponding values, type
may be either
string (it's value will be used for all
objectId
-value
pairs) or
equal-sized array with per-OID value. When any other parameters' combinations are
used, a number of E_WARNING messages may be shown with detailed description.
objectId
The SNMP object id
When count of OIDs in object_id array is greater than max_oids object property set method will have to use multiple queries to perform requested value updates. In this case type and value checks are made per-chunk so second or subsequent requests may fail due to wrong type or value for OID requested. To mark this a warning is raised when count of OIDs in object_id array is greater than max_oids.
type
O MIB define o tipo de cada ID de objeto. Deve ser especificado como um único caractere da lista abaixo.
= | 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 |
Se 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 |
A maioria destes tipos usará o tipo ASN.1 correspondente óbvio. 's', 'x', 'd' e 'b' são todas maneiras diferentes de especificar um valor OCTET STRING e o tipo sem sinal 'u' também é usado para lidar com valores Gauge32.
Se os arquivos MIB forem carregados na árvore MIB com "snmp_read_mib" ou ao especificar isso na configuração da libsnmp, '=' pode ser usado como
o parâmetro 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)}":
Consulte a seção de exemplos para obter mais detalhes.
value
The new 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 Set single SNMP object id
<?php
$session = new SNMP(SNMP::VERSION_2C, "127.0.0.1", "private");
$session->set('SNMPv2-MIB::sysContact.0', 's', "Nobody");
?>
Exemplo #2 Set multiple values using single SNMP::set() call
<?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"));
// or
$session->set(array('SNMPv2-MIB::sysContact.0', 'SNMPv2-MIB::sysLocation.0'), 's', array("Nobody", "Nowhere"));
?>
Exemplo #3 Using SNMP::set() for setting BITS SNMP object id
<?php
$session = new SNMP(SNMP::VERSION_2C, "127.0.0.1", "private");
$session->set('FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// or
$session->set('FOO-MIB::bar.42', 'x', 'F0');
?>