PHP Conference Japan 2024

snmp3_set

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

snmp3_set設定 SNMP 物件的值

描述

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() 用於設定由 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 的類型。必須從以下清單中指定為單一字元。

types
=該類型取自 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」都是指定 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)}"

  • 使用類型 "b" 和位元號碼清單。不建議使用此方法,因為相同 OID 的 GET 查詢會傳回例如 0xF8。
  • 使用類型 "x" 和十六進制數字,但沒有(!)常用的 "0x" 前綴。

請參閱範例章節以取得更多詳細資訊。

value

新值

timeout

第一次逾時之前的微秒數。

retries

發生逾時時重試的次數。

傳回值

成功時傳回 true,失敗時傳回 false

如果 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');
?>
新增筆記

使用者貢獻的筆記

此頁面沒有使用者貢獻的筆記。
To Top