看板 PHP 關於我們 聯絡資訊
大家好 請教大家如何利用PHP程式來做MIB裡的Table相加減 也就是說其實Table值是一直在變化的,而我抓回來的Table要減掉上次抓回的 以下程式跑了以後沒有抓到相減的值,請問是哪邊寫錯了呢? 這是利用SNMP抓值 <?php $labTime = date("md-Hi", time()+8*3600); $fileName = "C:\\temp\\$labTime.txt"; $period = 10; // seconds $host="10.10.32.144"; $comm="1234"; $oidPrefix=".1.3.6.1.4.1.522.3.12.5.1"; $colIds = array(1,3,4,5,6,7,9,10,13,14); //$Timeout = 5; //$Retries = 3; if (!$handle = fopen($fileName, 'a')) { echo "Cannot open file ($filename)"; exit; } $time1=time(); while (true) { foreach ($colIds as $i) { $cols[$i] = snmpwalk($host, $comm, "$oidPrefix.$i", 10); for ($j=0; $j<count($cols[$i]);$j++) if (strpos($cols[$i][$j],":")) $cols[$i][$j]=trim(substr(strrchr($cols[$i][$j], ": "), 2 )); } $time2 = time()-$time1; for ($j=0; $j<count($cols[1]);$j++) { foreach ($colIds as $i) { $record[$i] = $cols[$i][$j]; } $mac = $record[1]; if (isset($val[$mac])) { $TxShortRetries=$record[4]; $TxLongRetries=$record[5]; $LatestTxShortRetries=$record[6]; $LatestTxLongRetries=$record[7]; $record[4]=($record[4]-$val[$mac]["TxShortRetries"]+4294967295) % 4294967295; $record[5]=($record[5]-$val[$mac]["TxLongRetries"]+4294967295) % 4294967295; $record[6]=($record[6]-$val[$mac]["LatestTxShortRetries"]+4294967295) % 4294967295; $record[7]=($record[7]-$val[$mac]["LatestTxLongRetries"]+4294967295) % 4294967295; $val[$mac]["TxShortRetries"]=$TxShortRetries; $val[$mac]["TxLongRetries"]=$TxLongRetries; $val[$mac]["LatestTxShortRetries"]=$LatestTxShortRetries; $val[$mac]["LatestTxLongRetries"]=$LatestTxLongRetries; $recStr = $time2 . "\t". implode("\t", $record); echo "$recStr\n"; fputs($handle, "$recStr\n"); } else { $val[$mac]["TxShortRetries"]=$record[4]; $val[$mac]["TxLongRetries"]=$record[5]; $val[$mac]["LatestTxShortRetries"]=$record[6]; $val[$mac]["LatestTxLongRetries"]=$record[7]; } } sleep($period); } fclose($handle); ?> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.22.32.200