2024 年 PHP Conference Japan

snmp2_set

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

snmp2_set設定 SNMP 物件的值

說明

snmp2_set(
    字串 $hostname,
    字串 $community,
    陣列|字串 $object_id,
    陣列|字串 $type,
    陣列|字串 $value,
    整數 $timeout = -1,
    整數 $retries = -1
): 布林值

snmp2_set() 用於設定由 object_id 指定的 SNMP 物件的值。

參數

hostname

SNMP 代理程式(伺服器)的主機名稱。

community

寫入共同體。

object_id

SNMP 物件 ID。

type

MIB 定義每個物件 ID 的類型。它必須指定為以下列表中的一個單一字元。

types
=類型取自 MIB
iINTEGER (整數)
uINTEGER (整數)
sSTRING (字串)
xHEX STRING (十六進位字串)
dDECIMAL STRING (十進位字串)
nNULLOBJ (空物件)
oOBJID (物件 ID)
tTIMETICKS (時間刻度)
aIPADDRESS (IP 位址)
bBITS (位元)

如果在編譯 SNMP 程式庫時定義了 OPAQUE_SPECIAL_TYPES,以下類型也適用

types
Uunsigned int64 (無號 64 位元整數)
Isigned int64 (有號 64 位元整數)
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 主機拒絕資料類型,則會顯示 E_WARNING 訊息,例如「警告:封包錯誤。原因:(badValue) 給定的值類型或長度錯誤。」 如果指定了未知或無效的 OID,警告可能會顯示「無法新增變數」。

範例

範例 #1 使用 snmp2_set()

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

範例 #2 使用 snmp2_set() 設定 BITS SNMP 物件 ID

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

另請參閱

新增註記

使用者貢獻的註記 1 則註記

0
jhuebel at gmail dot com
13 年前
「類型」參數必須是以下其中之一,取決於要在 SNMP 主機上設定的變數類型

i 整數 (INTEGER)
u 無正負號整數 (unsigned INTEGER)
t 時間刻度 (TIMETICKS)
a IP 位址 (IPADDRESS)
o 物件 ID (OBJID)
s 字串 (STRING)
x 十六進位字串 (HEX STRING)
d 十進位字串 (DECIMAL STRING)

如果在編譯 SNMP 函式庫時定義了 OPAQUE_SPECIAL_TYPES,則以下類型也屬有效

U 無正負號 int64 (unsigned int64)
I 有正負號 int64 (signed int64)
F 浮點數 (float)
D 雙精度浮點數 (double)
To Top