(PHP 4, PHP 5, PHP 7, PHP 8)
snmp3_set — 設定 SNMP 物件的值
$hostname
,$security_name
,$security_level
,$auth_protocol
,$auth_passphrase
,$privacy_protocol
,$privacy_passphrase
,$object_id
,$type
,$value
,$timeout
= -1,$retries
= -1
snmp3_set() 用於設定由 object_id
指定的 SNMP 物件的值。
即使安全層級未使用驗證或隱私協定/密碼,也必須指定有效的值。
hostname
SNMP 代理程式(伺服器)的主機名稱。
security_name
安全名稱,通常是某種使用者名稱
security_level
安全層級 (noAuthNoPriv|authNoPriv|authPriv)
auth_protocol
驗證協定 (MD5 或 SHA)
auth_passphrase
驗證密碼
privacy_protocol
隱私協定 (DES 或 AES)
privacy_passphrase
隱私密碼
object_id
SNMP 物件 ID。
type
MIB 定義每個物件 ID 的類型。必須從以下清單中指定為單一字元。
= | 該類型取自 MIB |
i | INTEGER |
u | INTEGER |
s | STRING |
x | HEX STRING |
d | DECIMAL STRING |
n | NULLOBJ |
o | OBJID |
t | TIMETICKS |
a | IPADDRESS |
b | BITS |
如果在編譯 SNMP 程式庫時定義了 OPAQUE_SPECIAL_TYPES
,則以下也有效
U | unsigned int64 |
I | signed int64 |
F | float |
D | double |
大多數這些將使用明顯對應的 ASN.1 類型。「s」、「x」、「d」和「b」都是指定 OCTET STRING 值的不同方式,而「u」無符號類型也用於處理 Gauge32 值。
如果 MIB 檔案透過 "snmp_read_mib" 或在 libsnmp 設定中指定,載入到 MIB 樹狀結構,則對於所有物件 ID,可以使用 '=' 作為 type
參數,因為類型可以從 MIB 中自動讀取。
請注意,有兩種方法可以設定 BITS 類型的變數,例如 "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}"
請參閱範例章節以取得更多詳細資訊。
value
新值
timeout
第一次逾時之前的微秒數。
retries
發生逾時時重試的次數。
如果 SNMP 主機拒絕資料類型,則會顯示類似「Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length.」的 E_WARNING 訊息。如果指定了未知或無效的 OID,則警告可能讀取「Could not add variable」。
範例 1 使用 snmp3_set()
<?php
snmp3_set('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifAlias.3', 's', "foo");
?>
範例 2 使用 snmp3_set() 設定 BITS SNMP 物件 ID
<?php
snmp3_set('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// 或
snmp3_set('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'FOO-MIB::bar.42', 'x', 'F0');
?>