PHP Conference Nagoya 2025

snmp3_set

(PHP 4, PHP 5, PHP 7, PHP 8)

snmp3_setDéfinit la valeur d'un objet SNMP

Description

snmp3_set(
    string $hostname,
    string $security_name,
    string $security_level,
    string $auth_protocol,
    string $auth_passphrase,
    string $privacy_protocol,
    string $privacy_passphrase,
    array|string $object_id,
    array|string $type,
    array|string $value,
    int $timeout = -1,
    int $retries = -1
): bool

snmp3_set() est utilisé pour définir la valeur d'un objet SNMP spécifié par le paramètre object_id.

Même si le niveau de sécurité n'utilise pas d'authentification ou de protocole privée par mot de passe, des valeurs valides doivent être spécifiées.

Liste de paramètres

hostname

Le nom de l'hôte de l'agent SNMP (serveur).

security_name

Le nom de la sécurité, habituellement, le nom d'utilisateur.

security_level

Le niveau de sécurité (noAuthNoPriv|authNoPriv|authPriv).

auth_protocol

La protocole d'authentification (MD5 ou SHA).

auth_passphrase

La phrase secrète pour l'authentification.

privacy_protocol

Le protocole privé (DES ou AES)

privacy_passphrase

La phrase secrète privée.

object_id

L'identifiant de l'objet SNMP.

type

Le MIB définit le type de chaque identifiant d'objets. Il doit être spécifié sous la forme d'un simple caractère depuis la liste suivante.

types
=Le type est récupéré depuis le MIB
iINTEGER
uINTEGER
sSTRING
xHEX STRING
dDECIMAL STRING
nNULLOBJ
oOBJID
tTIMETICKS
aIPADDRESS
bBITS

Si la constante OPAQUE_SPECIAL_TYPES a été définie lors de la compilation de la bibliothèque SNMP, les caractères suivants seront également disponibles :

types
Uint64 non-signé
Iint64 signé
Ffloat
Ddouble

La plupart de ces valeurs utilise le type ASN.1 correspondant. 's', 'x', 'd' et 'b' sont toutes des façons différentes de spécifier la valeur OCTET STRING et le type non-signé 'u' est également utilisé pour gérer les valeurs Gauge32.

Si les fichiers MIB sont chargés dans l'arbre MIB avec "snmp_read_mib" ou en les spécifiant dans la configuration de libsnmp, '=' pourra être utilisé comme paramètre de type pour tous les identifiants d'objets, vu que le type peut automatiquement être lu depuis le MIB.

Notez qu'il y a 2 façons de définir une variable de type BITS like i.e. "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":

  • En utilisant le type "b" et une liste d'octets. Cette méthode n'est pas recommandée vu que la requête GET pour un même OID retournera i.e. 0xF8.
  • En utilisant le type "x" et un nombre hexadécimal mais sans(!) le préfixe usuel "0x".

Reportez-vous à la section sur les exemples pour plus de détails.

value

La nouvelle valeur.

timeout

Le nombre de millisecondes avant le premier délai d'expiration.

retries

Le nombre de tentative dans le cas où le délai d'expiration est atteint.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Si l'hôte SNMP rejète le type de données, une alerte de type E_WARNING comme "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length." est affiché. Si un OID inconnu ou invalide est spécifié, l'alerte sera probablement "Could not add variable".

Exemples

Exemple #1 Exemple avec snmp3_set()

<?php
snmp3_set
('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifAlias.3', 's', "foo");
?>

Exemple #2 Exemple avec snmp3_set() pour configurer l'identifiant de l'objet SNMP BITS

<?php
snmp3_set
('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// or
snmp3_set('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'FOO-MIB::bar.42', 'x', 'F0');
?>
add a note

User Contributed Notes

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