請確保在 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
(PHP 4, PHP 5, PHP 7, PHP 8)
snmpwalkoid — 查詢網路實體的資訊樹
$hostname
,$community
,$object_id
,$timeout
= -1,$retries
= -1
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 物件。可以使用迴圈逐步查看這些值。
請確保在 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
上述註釋提到 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;
}
也許這可以幫助遇到這個問題的人。我知道我個人經常使用這些使用者貢獻的註釋。
注意:snmpwalkoid 有可能遺失資料 — 例如 "rmon.matrix.matrixSDTable" 表格使用二進位 MAC 位址作為索引的一部分,這些位址會被轉換為 ASCII 碼,而當它們到達 php 時,可能不再是唯一的 — 因此表格中的一些項目會遺失...