(PHP 5 >= 5.4.0, PHP 7, PHP 8)
SNMP::__construct — 建立 SNMP 實例,表示與遠端 SNMP 代理程式的連線工作階段
$version
,$hostname
,$community
,$timeout
= -1,$retries
= -1建立一個代表與遠端 SNMP 代理程式連線的 SNMP 實例。
version(版本)
SNMP 協定版本:SNMP::VERSION_1
、SNMP::VERSION_2C
、SNMP::VERSION_3
。
hostname(主機名稱)
SNMP 代理程式。 hostname
可以加上冒號後接 SNMP 代理程式埠號。如果使用 IPv6 位址搭配埠號,則必須將 IPv6 位址用方括號括起來。如果 hostname
使用 FQDN,則會由 PHP SNMP 擴充套件解析,而不是由 Net-SNMP 引擎解析。如果要強制使用 IPv6 位址來指定 FQDN,可以將 FQDN 用方括號括起來。以下是一些範例:
IPv4,使用預設埠 | 127.0.0.1 |
IPv6,使用預設埠 | ::1 或 [::1] |
IPv4,使用指定埠 | 127.0.0.1:1161 |
IPv6,使用指定埠 | [::1]:1161 |
FQDN,使用預設埠 | host.domain |
FQDN,使用指定埠 | host.domain:1161 |
FQDN,使用預設埠,強制使用 IPv6 位址 | [host.domain] |
FQDN,使用指定埠,強制使用 IPv6 位址 | [host.domain]:1161 |
community(社群字串)
指定給定 version
的安全等級。 community
存取字串的用途取決於 SNMP 版本:
SNMP::VERSION_1
|
public 代表唯讀權限,private 代表讀寫權限。 |
SNMP::VERSION_2C
|
public 代表唯讀權限,private 代表讀寫權限。 |
SNMP::VERSION_3
|
SNMPv3 安全名稱,可以是以下其中之一:noAuthNoPriv 、authNoPriv (需要驗證密碼和驗證協定)或 authPriv (需要驗證密碼和協定,以及隱私密碼和協定)。 |
timeout(逾時)
第一次逾時前的微秒數。
retries(重試次數)
發生逾時時的重試次數。
當參數數量或類型錯誤,或指定了未知的 SNMP 協定版本時,SNMP::__construct() 會擲出例外。
範例 #1 取得主機的實體位置
<?php
$session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
$sysdescr = $session->get("sysDescr.0");
echo "$sysdescr\n";
?>
以上範例會輸出類似以下的內容
STRING: Test server