(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 物件的值。
即使安全層級未使用驗證或隱私協定/密碼,也必須指定有效的值。
hostnameSNMP 代理程式(伺服器)的主機名稱。
security_name安全名稱,通常是某種使用者名稱
security_level安全層級 (noAuthNoPriv|authNoPriv|authPriv)
auth_protocol驗證協定 (MD5 或 SHA)
auth_passphrase驗證密碼
privacy_protocol隱私協定 (DES 或 AES)
privacy_passphrase隱私密碼
object_idSNMP 物件 ID。
typeMIB 定義每個物件 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');
?>