# snmp2_set

(PHP >= 5.2.0, PHP 7, PHP 8)

snmp2_set — Définit la valeur d'un objet SNMP

### Description

snmp2_set(
string `$hostname`,
string `$community`,
array|string `$object_id`,
array|string `$type`,
array|string `$value`,
int `$timeout` = -1,
int `$retries` = -1
): bool

La fonction snmp2_set() est utilisée pour définir la valeur d'un objet SNMP spécifié par son identifiant `object_id`.

### Liste de paramètres

`hostname`

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

`community`

  La communauté d'écriture.

`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
  i | INTEGER
  u | INTEGER
  s | STRING
  x | HEX STRING
  d | DECIMAL STRING
  n | NULLOBJ
  o | OBJID
  t | TIMETICKS
  a | IPADDRESS
  b | BITS

  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
  U | int64 non-signé
  I | int64 signé
  F | float
  D | double

  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 microsecondes avant le premier délai d'expiration.

`retries`

  Le nombre de tentatives dans le cas où le délai d'expiration survient.

### 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 sera émis, comme "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length.". Si un OID inconnu ou invalide est spécifié, l'alerte émise contiendra probablement ceci : "Could not add variable".

### Exemples

Exemple #1 Exemple avec snmp2_set()

`<?php
snmp2_set("localhost", "public", "IF-MIB::ifAlias.3", "s", "foo");
?>`

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

`<?php
snmp2_set("localhost", "public", 'FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// or
snmp2_set("localhost", "public", 'FOO-MIB::bar.42', 'x', 'F0');
?>`

### Voir aussi

- snmp2_get() - Récupère un objet SNMP