PHPverse 2025

SNMP::set

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::setDefine o valor de um objeto SNMP

Descrição

public SNMP::set(array|string $objectId, array|string $type, array|string $value): bool

Solicita ao agente SNMP remoto que defina o valor de um ou mais objetos SNMP especificados pelo objectId.

Parâmetros

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.

objectId

O ID do objeto SNMP

Quando a contagem de OIDs no array object_id for maior que max_oids, o método de definição de propriedades do objeto precisará usar múltiplas consultas para realizar as atualizações dos valores solicitados. Nesse caso, as verificações de tipo e valor são feitas por bloco, de modo que a segunda ou as solicitações subsequentes podem falhar devido a tipo ou valor incorreto para o OID solicitado. Para sinalizar isso, um aviso é gerado quando a contagem de OIDs no array object_id for maior que max_oids.

type

O MIB define o tipo de cada ID de objeto. Deve ser especificado como um único caractere da lista abaixo.

Tipos
=O tipo é retirado do MIB
iINTEGER
uINTEGER
sSTRING
xHEX STRING
dDECIMAL STRING
nNULLOBJ
oOBJID
tTIMETICKS
aIPADDRESS
bBITS

Se OPAQUE_SPECIAL_TYPES foi definida ao compilar a biblioteca SNMP, os seguintes tipos também são válidos:

Tipos
Uunsigned int64
Isigned int64
Ffloat
Ddouble

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)}":

  • Usando o tipo "b" e uma lista de números binários. Este método não é recomendado, pois a consulta GET para o mesmo OID retornaria, por exemplo, 0xF8.
  • Usando o tipo "x" e um número hexadecimal, mas sem (!) o prefixo "0x" comum.

Consulte a seção de exemplos para obter mais detalhes.

value

O novo valor.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

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.

Exemplos

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

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês)

Não há notas de usuários para esta página.
To Top