SNMP::set

(PHP 5 >= 5.4.0, PHP 7)

SNMP::setSet the value of an SNMP object

˵��

public SNMP::set ( mixed $object_id , mixed $type , mixed $value ) : bool

Requests remote SNMP agent setting the value of one or more SNMP objects specified by the object_id.

����

If object_id is string, both type and value must be string too. If object_id is array value must be equal-sized array containing corresponding values, type may be either string (it's value will be used for all object_id-value pairs) or equal-sized array with per-OID value. When any other parameters' combinations are used, a number of E_WARNING messages may be shown with detailed description.

object_id

The SNMP object id

When count of OIDs in object_id array is greater than max_oids object property set method will have to use multiple queries to perform requested value updates. In this case type and value checks are made per-chunk so second or subsequent requests may fail due to wrong type or value for OID requested. To mark this a warning is raised when count of OIDs in object_id array is greater than max_oids.

type

MIB �����˸������� id �����͡������������г��ĵ����ַ�֮һ��

����
=MIB����
iINTEGER
uINTEGER
sSTRING
xHEX STRING
dDECIMAL STRING
nNULLOBJ
oOBJID
tTIMETICKS
aIPADDRESS
bBITS

����ڱ��� SNMP ��ʱ������ OPAQUE_SPECIAL_TYPES����ô����ֵ�ǺϷ��ģ�

types
Uunsigned int64
Isigned int64
Ffloat
Ddouble

��Щֵ�󶼻�ʹ���� ASN.1 ��������͡�'s'��'x'��'d' �Լ� 'b' ����ָ��һ�����ֽ��ַ���ֵ�ķ�ʽ������ 'u' �޷�������Ҳ�����ڴ��� Gauge32 ֵ��

��� MIB �ļ����� "snmp_read_mib" ����ͨ���� libsnmp config ��ָ���������� MIB ��ʱ�� '=' ���Ա�����Ϊ���ж���� type ��������Ϊ type ���Ա��Զ��� MIB �ж�ȡ��

ע�������ַ�ʽ�����趨 BITS ���͵ı��������� "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":

  • ʹ�� "b" �����Լ�һ��λ�����б����Ƽ�ʹ�ô˷�������Ϊ GET ��ѯ��ͬһ�� OID ���᷵������ 0xF8��
  • ʹ�� "x" �����Լ�һ��ʮ�����������Dz���Ҫͨ���� "0x" ǰ׺��

����ϸ�ڼ��������֡�

value

The new value.

����ֵ

�ɹ�ʱ���� TRUE�� ������ʧ��ʱ���� FALSE��

�����쳣

������Ĭ�ϲ��׳��κ��쳣�����Ҫ��ijЩ�����ʱ�׳� SNMPException �쳣���û���Ҫ�� SNMP ����� exceptions_enabled �趨Ϊ��Ӧ��ֵ������ϸ�ڼ� SNMP::$exceptions_enabled �Ľ�����

����

Example #1 Set single SNMP object id

<?php
  $session 
= new SNMP(SNMP::VERSION_2C"127.0.0.1""private");
  
$session->set('SNMPv2-MIB::sysContact.0''s'"Nobody");
?>

Example #2 Set multiple values using single 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"));
// or
  
$session->set(array('SNMPv2-MIB::sysContact.0''SNMPv2-MIB::sysLocation.0'), 's', array("Nobody""Nowhere"));
?>

Example #3 Using SNMP::set() for setting BITS SNMP object id

<?php
  $session 
= new SNMP(SNMP::VERSION_2C"127.0.0.1""private");
  
$session->set('FOO-MIB::bar.42''b''0 1 2 3 4');
// or
  
$session->set('FOO-MIB::bar.42''x''F0');
?>

�μ�