(PHP 5 >= 5.4.0, PHP 7, PHP 8)
SNMP::set — Define el valor de un objeto SNMP
Solicita al agente remoto SNMP que defina el valor
de uno o varios objetos SNMP especificados por su identificador
objectId
.
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
MIB define el tipo de cada identificador de objeto. Debe indicarse con un único carácter de la siguiente lista.
= | Tipo adquirido a partir de MIB |
i | INTEGER |
u | INTEGER |
s | STRING |
x | HEX STRING |
d | DECIMAL STRING |
n | NULLOBJ |
o | OBJID |
t | TIMETICKS |
a | IPADDRESS |
b | BITS |
Si se definió OPAQUE_SPECIAL_TYPES
al compilar la biblioteca SNMP, los siguientes valores serán también válidos:
U | int64 sin signo |
I | int64 con signo |
F | float |
D | double |
La mayoría, utilizarán su correspondiente tipo ASN.1. 's', 'x', 'd' y 'b' son diferentes formas de especificar un valor de OCTET STRING, y el tipo sin signo 'u' se usa también para manejar valores Gauge32.
Si se cargan los ficheros MIB en el árbol MIB con "snmp_read_mib" o con la configuración de libsnmp, se puede usar '=' como
parámetro type
para todos los id de objetos, ya que se podrá leer automáticamente el tipo a partir del MIB.
Tenga presente que hay dos formas de asigar a una variable los tipos BITS, como por ejemplo. "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":
Revise el apartado de ejemplos para más detalles.
value
El nuevo valor.
Este método no lanza ninguna excepción de manera predeterminada.
Para poder lanzar una excepción SNMPException cuando ocurre alguno de los errores de la biblioteca
el parámetro exceptions_enabled
de la clase SNMP
se debería establecer al valor correspondiente. Véase
la explicación de SNMP::$exceptions_enabled
para más detalles.
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');
?>