PHP 8.5.0 Alpha 2 available for testing

SNMP::set

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

SNMP::setDefine el valor de un objeto SNMP

Descripción

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

Solicita al agente remoto SNMP que defina el valor de uno o varios objetos SNMP especificados por su identificador objectId.

Parámetros

Si objectId es un string, entonces los parámetros type y value deben ser también un string. Si objectId es un array, el parámetro value debe ser un array de igual tamaño que contenga los valores correspondientes, y el parámetro type podrá ser un string (su valor será utilizado para todas las parejas objectId-value) o bien un array de igual tamaño con pares OID-valor. Cuando se proporciona otra combinación de parámetros, pueden emitirse alertas de nivel E_WARNING con una descripción detallada.

objectId

El identificador del objeto SNMP.

Cuando el número de OIDs en el array object_id es superior a la propiedad max_oids del objeto, el método deberá utilizar varias solicitudes para realizar las actualizaciones solicitadas. En este caso, la verificación del tipo y del valor se realiza por partes, por lo que la segunda solicitud (y otras sub-solicitudes) fallará debido a un tipo o valor incorrecto para el OID solicitado. Para detectar este comportamiento, se emite una alerta cuando el número de OIDs en el array object_id es superior a la propiedad max_oids.

type

El MIB define el tipo de cada identificador de objeto. Debe ser especificado como un carácter simple de la lista siguiente.

tipos
=El tipo es recuperado desde el MIB
iINTEGER
uINTEGER
sSTRING
xHEX STRING
dDECIMAL STRING
nNULLOBJ
oOBJID
tTIMETICKS
aIPADDRESS
bBITS

Si la constante OPAQUE_SPECIAL_TYPES ha sido definida durante la compilación de la biblioteca SNMP, los caracteres siguientes también estarán disponibles:

tipos
Uint64 sin signo
Iint64 con signo
Ffloat
Ddouble

La mayoría de estos valores utilizan el tipo ASN.1 correspondiente. 's', 'x', 'd' y 'b' son todas formas diferentes de especificar el valor OCTET STRING y el tipo sin signo 'u' también es utilizado para manejar los valores Gauge32.

Si los archivos MIB son cargados en el árbol MIB con "snmp_read_mib" o especificándolos en la configuración de libsnmp, '=' podrá ser utilizado como parámetro de tipo para todos los identificadores de objetos, ya que el tipo puede ser leído automáticamente desde el MIB.

Nota que hay 2 formas de definir una variable de tipo BITS como i.e. "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":

  • Utilizando el tipo "b" y una lista de octetos. Este método no es recomendado ya que la petición GET para un mismo OID retornará i.e. 0xF8.
  • Utilizando el tipo "x" y un número hexadecimal pero sin(!) el prefijo usual "0x".

Consúltese la sección sobre ejemplos para más detalles.

value

El nuevo valor.

Valores devueltos

Esta función retorna true en caso de éxito o false si ocurre un error.

Errores/Excepciones

Este método no lanza excepciones por omisión. Para activar el lanzamiento de excepciones SNMPException cuando ocurren errores de la biblioteca, el parámetro de la clase SNMP exceptions_enabled debe ser definido al valor correspondiente. Ver las explicaciones sobre SNMP::$exceptions_enabled para más detalles.

Ejemplos

Ejemplo #1 Define un solo identificador de objeto SNMP

<?php
$session
= new SNMP(SNMP_VERSION_2C, "127.0.0.1", "private");
$session->set('SNMPv2-MIB::sysContact.0', 's', "Nobody");
?>

Ejemplo #2 Define varios valores utilizando una sola llamada al método 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"));
// o
$session->set(array('SNMPv2-MIB::sysContact.0', 'SNMPv2-MIB::sysLocation.0'), 's', array("Nobody", "Nowhere"));
?>

Ejemplo #3 Ejemplo con SNMP::set() para configurar el identificador de 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');
// o
$session->set('FOO-MIB::bar.42', 'x', 'F0');
?>

Ver también

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top