snmp3_set
En esta página
snmp3_set
Define el valor de un objeto SNMP
Descripción#
snmp3_set(string $hostname, string $security_name, string $security_level, string $auth_protocol, string $auth_passphrase, string $privacy_protocol, string $privacy_passphrase, array $object_id, array $type, array $value, [int $timeout], [int $retries]): bool
```php
`snmp3_set` se utiliza para definir el valor de un objeto SNMP especificado por el parámetro `object_id`.
Aunque el nivel de seguridad no utilice autenticación o protocolo privado por contraseña, se deben especificar valores válidos.
## Parámetros
`hostname`
El nombre del host del agente SNMP (servidor).
`security_name`
El nombre de seguridad, generalmente, el nombre de usuario.
`security_level`
El nivel de seguridad (noAuthNoPriv\|authNoPriv\|authPriv).
`auth_protocol`
El protocolo de autenticación (MD5 o SHA).
`auth_passphrase`
La frase secreta para la autenticación.
`privacy_protocol`
El protocolo privado (DES o AES).
`privacy_passphrase`
La frase secreta privada.
`object_id`
El identificador del objeto SNMP.
`type`
El MIB define el tipo de cada identificador de objeto. Debe ser especificado como un carácter simple de la lista siguiente.
| | |
|-----|------------------------------------|
| = | El tipo es recuperado desde el MIB |
| i | INTEGER |
| u | INTEGER |
| s | STRING |
| x | HEX STRING |
| d | DECIMAL STRING |
| n | NULLOBJ |
| o | OBJID |
| t | TIMETICKS |
| a | IPADDRESS |
| b | BITS |
tipos
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:
| | |
|-----|-----------------|
| U | int64 sin signo |
| I | int64 con signo |
| F | float |
| D | double |
tipos
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.
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.
`timeout`
El número de milisegundos antes del primer tiempo límite.
`retries`
El número de intentos en caso de que se alcance el tiempo límite.
## Valores devueltos
Esta función retorna `true` en caso de éxito o `false` si ocurre un error.
Si el host SNMP rechaza el tipo de datos, se muestra una alerta de tipo E_WARNING como "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length." Si se especifica un OID desconocido o inválido, la alerta será probablemente "Could not add variable".
## Historial de cambios
| Versión | Descripción |
|----|----|
| 8.5.0 | Ahora lanza un ValueError cuando la longitud del nombre de host es igual o mayor a 128 bytes, cuando el puerto es negativo o mayor que 65535, o cuando los valores de timeout o reintentos son menores a -1 o demasiado grandes. |
## Ejemplos
Ejemplo con `snmp3_set`
Ejemplo con `snmp3_set` para configurar el identificador del objeto SNMP BITS
```php