SNMP::set

(PHP 5 >= 5.4.0, PHP 7)

SNMP::setSet the value of an SNMP object

Descrição

public SNMP::set ( mixed $object_id , mixed $type , mixed $value ) : bool

Requests remote SNMP agent setting the value of one or more SNMP objects specified by the object_id.

Parâmetros

If object_id is string, both type and value must be string too. If object_id is array value must be equal-sized array containing corresponding values, type may be either string (it's value will be used for all object_id-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.

object_id

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. Pode ser um caractere da lista abaixo.

types
=Lista de MIBs id
iINTEGER
uINTEGER
sSTRING
xHEX STRING
dDECIMAL STRING
nNULLOBJ
oOBJID
tTIMETICKS
aIPADDRESS
bBITS

Se OPAQUE_SPECIAL_TYPES foi definido durante a compilação da biblioteca SNMP, os seguintes também são válidos:

types
Uunsigned int64
Isigned int64
Ffloat
Ddouble

A maioria dos tipos tem correspondentes óbvios com tipos ASN.1. 's', 'x', 'd' e 'b' são modos diferentes de especificar um valor OCTET STRING e 'u' também é utilizado para manipular valores Gauge32.

Se MIB-Files foi carregado na árvore MIB com "snmp_read_mib" ou por especificá-lo na configuração do libsnmp, '=' pode ser utilizado como parâmetro type para todos os identificadores de objeto que podem ser lidos automaticamente do MIB.

Note que há duas maneiras de configurar o tipo BITS, assim: "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":

  • Utilizando "b" e uma lista de bits. Esse método não é recomendado desde que requisições GET para o mesmo OID pode retornar algo com 0xF8.
  • Utilizando "x" e um número hex sem (!) o prefixo "0x".

Veja a seção de exemplo para mais detalhes.

value

The new value.

Valor Retornado

Retorna TRUE em caso de sucesso ou FALSE em caso de falha.

Erros

Esse método não lança nenhuma exceção por padrão. Para ativar o lançamento de exceções SNMPException quando algum erro ocorrer, o parâmetro exceptions_enabled deve ser configurado. Veja SNMP::$exceptions_enabledessa explicação para mais detalhes.

Exemplos

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');
?>

Veja Também