SNMP::set

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

SNMP::set — Define el valor de un objeto SNMP

Descripción

public function 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 ficheros MIB se cargan en el árbol MIB con "snmp_read_mib" o especificándolos en la configuración de libsnmp, se puede usar '=' como el parámetro type para todos los identificadores de objeto, ya que entonces el tipo se puede leer automáticamente desde el MIB.

Tenga en cuenta que hay dos formas de definir una variable de tipo BITS, por ejemplo "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":

  • Utilizando el tipo "b" y una lista de números de bit. Este método no es recomendado ya que la petición GET para un mismo OID retornaría, por ejemplo, 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

Lanza una SNMPException si ocurre un error de la biblioteca y su tipo está incluido en la máscara de bits SNMP::$exceptions_enabled. De lo contrario, emite un E_WARNING.

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()

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

Véase también

+add a note

User Contributed Notes

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