PHP Conference Japan 2024

snmpwalkoid

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

snmpwalkoid查詢網路實體的資訊樹

說明

snmpwalkoid(
    字串 $hostname,
    字串 $community,
    陣列|字串 $object_id,
    整數 $timeout = -1,
    整數 $retries = -1
): 陣列|false

snmpwalkoid() 函式用於從 hostname 指定的 SNMP 代理程式讀取所有物件 ID 及其各自的值。

基於歷史原因,存在 snmpwalkoid()snmpwalk() 這兩個函式。它們都是為了向下相容而提供的。請改用 snmprealwalk()

參數

hostname

SNMP 代理伺服器。

community

讀取共同體 (read community)。

object_id

如果為 null,則 object_id 將被視為 SNMP 物件樹的根,並且該樹下的所有物件都將以陣列形式返回。

如果指定了 object_id,則會返回該 object_id 下方的所有 SNMP 物件。

timeout

第一次逾時的微秒數。

retries

發生逾時時重試的次數。

返回值

返回一個關聯式陣列,包含以 object_id 作為根的物件 ID 及其各自的物件值,或者在發生錯誤時返回 false

範例

範例 #1 snmpwalkoid() 範例

<?php
$a
= snmpwalkoid("127.0.0.1", "public", "");
for (
reset($a); $i = key($a); next($a)) {
echo
"$i: $a[$i]<br />\n";
}
?>

上述函式呼叫會返回在本地主機上執行的 SNMP 代理伺服器的所有 SNMP 物件。可以使用迴圈逐步查看這些值。

參見

  • snmpwalk() - 從代理伺服器擷取所有 SNMP 物件

新增註釋

使用者貢獻的註釋 4 則註釋

匿名
10 年前
請確保在 Debian 中安裝 "snmp-mibs-downloader"。

apt-get install snmp-mibs-downloader

您可能還需要編輯 /etc/apt/sources.list

deb http://ftp.us.debian.org/debian/ wheezy main contrib non-free
deb-src http://ftp.us.debian.org/debian/ wheezy main contrib non-free
thammer at rtccom dot com
19 年前
上述註釋提到 MAC 位址會被轉換成整數或其他奇怪的格式。我不確定為什麼會發生這種情況,但我用一個包裝函式解決了這個問題。

function PadMAC($mac) {
$mac_arr = explode(':',$mac);
foreach($mac_arr as $atom) {
$atom = trim($atom);
$newarr[] = sprintf("%02s",$atom);
}
$newmac = implode(':',$newarr);
return $newmac;
}

也許這可以幫助遇到這個問題的人。我知道我個人經常使用這些使用者貢獻的註釋。
gene_wood at example dot com
20 年前
看來逾時時間是以微秒 (MICRO seconds) 為單位。
1,000,000 微秒 = 1 秒
jasper at pointless dot net
23 年前
注意:snmpwalkoid 有可能遺失資料 — 例如 "rmon.matrix.matrixSDTable" 表格使用二進位 MAC 位址作為索引的一部分,這些位址會被轉換為 ASCII 碼,而當它們到達 php 時,可能不再是唯一的 — 因此表格中的一些項目會遺失...
To Top