函式名稱:snmpwalk()
適用版本:PHP 4 >= 4.3.0, PHP 5, PHP 7
函式描述:snmpwalk() 函式用於獲取指定 SNMP 主機上的一組物件的值。
語法:snmpwalk(string $hostname, string $community, string $object_id, int $timeout = 1000000, int $retries = 5) : array|false
引數:
- $hostname: SNMP 主機名或 IP 地址。
- $community: SNMP 社群字串,用於訪問 SNMP 主機。
- $object_id: SNMP 物件識別符號(OID),用於指定要獲取的物件。
- $timeout: 可選引數,超時時間(以微秒為單位)。預設為 1000000 微秒(1秒)。
- $retries: 可選引數,重試次數。預設為 5 次。
返回值:
- 成功:返回一個包含所獲取物件的陣列。
- 失敗:返回 false。
示例:
$hostname = '127.0.0.1';
$community = 'public';
$object_id = '1.3.6.1.2.1.2.2.1.2'; // OID for ifDescr
$result = snmpwalk($hostname, $community, $object_id);
if ($result === false) {
echo "獲取 SNMP 物件失敗";
} else {
foreach ($result as $key => $value) {
echo "介面名稱: $value\n";
}
}
該示例中,我們使用 snmpwalk() 函式獲取本地主機的介面名稱。首先,我們指定了 SNMP 主機名為 '127.0.0.1',社群字串為 'public',物件識別符號為 '1.3.6.1.2.1.2.2.1.2'。然後,我們透過遍歷結果陣列列印出每個介面的名稱。
請注意,snmpwalk() 函式需要在 PHP 的配置檔案 php.ini 中啟用 SNMP 擴充套件(extension=snmp)才能正常使用。