Таблица mac адресов через SNMP PHP

$session_snmp = new SNMP(SNMP::VERSION_2C,'192.168.0.1', "puplic",1000000,2);
$dsf = $session_snmp->walk('1.3.6.1.2.1.17.7.1.2.2.1.2');

foreach($dsf as $key => $value){ //Запись таблицы в файл
file_put_contents('config.txt', $key.'='.$value."\n", FILE_APPEND);
}

$arr = file('config.txt');

$i=0;
foreach($arr as $val){

$val = str_replace("iso.3.6.1.2.1.17.7.1.2.2.1.2.", "",$val); //Удолить символы до влана
$macvlanport=explode('=',$val); //Разделить влан и мак с портом
$macvlanport[1] = str_replace("INTEGER: ", "",$macvlanport[1]); //Удолить из порта

$macvlan = explode('.', $macvlanport[0],2); //Разделить на влан и мак

$mac = explode('.', $macvlan[1]); //Разделить mac на октеты
foreach($mac as $macs){ //Перекодировать октеты в 16ричную и добавить обратно в массив
if(iconv_strlen($macs)==1){ //Если в октете один символ значит впереди о
$macsd[] = '0'.$macs;
}else{
$macsd[] = dechex ($macs);
}
}

$macaddr = implode(':',$macsd); //Собрать в строку mac

unset($macsd);

$fdb[$i]['port'] = trim($macvlanport[1]);//Порт
$fdb[$i]['vlan'] = $macvlan[0];//Влан
$fdb[$i]['mac'] = $macaddr; //мак

$i++;
}

array_multisort($fdb); //Сортируем по порту

$count = count($fdb);

//print_rex($fdb);

echo '
<table border="1">
<caption>Таблица mac адресов</caption>
<tr>
<th>Порт</th>
<th>Vlan</th>
<th>Mac</th>
</tr>';

for($i=0; $i< $count;$i++){

echo '<tr><td>'.$fdb[$i]['port'].'</td><td>'.$fdb[$i]['vlan'].'</td><td>'.$fdb[$i]['mac'].'</td></tr>';
}

echo '
</table>
';

Post Author: botanik

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

wwwww