snmp switch traffic交换机带宽

上代码

 <?php
function getstr1($strall,$str1,$str2,$html_charset='utf-8'){
$i1=mb_strpos($strall,$str1,0,$html_charset);
if(!is_int($i1)){return '';}
$i1R=$i1+mb_strlen($str1,$html_charset);
$i2=mb_strpos($strall,$str2,$i1+mb_strlen($str1,$html_charset),$html_charset);
if(!is_int($i2)){return '';}
return(mb_substr($strall,$i1R,$i2-$i1R,$html_charset));
}
class traffic{
private $lastArr=array();
function __construct(){
$this->lastArr['time']=0;
$this->lastArr['out']=0;
$this->lastArr['in']=0;
}
function doinfo($time,$in,$out){
$timeI=$time-$this->lastArr['time'];
$outI=$out-$this->lastArr['out'];
if($outI<0)$outI+=pow(2,32);
$inI=$in-$this->lastArr['in'];
if($inI<0)$inI+=pow(2,32);
$strOut=number_format($outI/$timeI/1024/1024,2);
$strIn=number_format($inI/$timeI/1024/1024,2);
echo 'Out: '.$strOut.'MB/s, In: '.$strIn."MB/s\n";
$this->lastArr['time']=$time;
$this->lastArr['out']=$out;
$this->lastArr['in']=$in;
}
}
$session = new SNMP(SNMP::VERSION_2C, "10.105.1.1", "public");
$arr=array();
$arr[]='iso.3.6.1.2.1.1.3.0';
$n=6;
$arr[]='iso.3.6.1.2.1.2.2.1.10.'.$n;//in
$arr[]='iso.3.6.1.2.1.2.2.1.16.'.$n;//out
$traffic=new traffic();
while(1){
$p=$session->get($arr);
$timeticks=$p['iso.3.6.1.2.1.1.3.0'];
$timeticks=getstr1($timeticks,'(',')');
$timeticks=$timeticks/100;
$iIn=$p['iso.3.6.1.2.1.2.2.1.10.6'];
$iIn=explode(': ',$iIn)[1];
$iIn=floatval($iIn);
$iOut=$p['iso.3.6.1.2.1.2.2.1.16.6'];
$iOut=explode(': ',$iOut)[1];
$iOut=floatval($iOut);
$traffic->doinfo($timeticks,$iIn,$iOut);
sleep(2);
}
$session->close();
上一篇:非线性邻域滤波(NNFs)在MR-FBP图像重建算法中的应用(基于astra-toolbox开发, 实现双边滤波,非局部均值滤波(NLM)的惩戒项的改进,并进行MAE,MAR分析)


下一篇:qml针对插件编程的国际化