Example #1
0
<?php

// --- Начало модуля: 'Таблица коммутации' ---
// Таблица коммутации для всех vlan
$dot1dTpFdbAddress = @snmpwalkoid($ip, $rcomm, ".1.3.6.1.2.1.17.7.1.2.2.1.2", $timeout, $retries);
// Статус записей
$dot1dTpFdbStatus = @snmpwalkoid($ip, $rcomm, ".1.3.6.1.2.1.17.7.1.2.2.1.3", $timeout, $retries);
// Список названий vlan
$dot1qTpVlanStaticName = @snmpwalkoid($ip, $rcomm, ".1.3.6.1.2.1.17.7.1.4.3.1.1", $timeout, $retries);
asort($dot1dTpFdbAddress);
// Оставляем в ключе массива только нужную информацию
$dot1dTpFdbAddress = keyscutvlanmac($dot1dTpFdbAddress);
// Оставляем в ключе массива только нужную информацию
$dot1dTpFdbStatus = keyscutvlanmac($dot1dTpFdbStatus);
// Оставляем в ключе массива только нужную информацию
$dot1qTpVlanStaticName = keyscut($dot1qTpVlanStaticName);
// Создаем шапку FDB таблицы
$swtable = "\n<table border=1 width='100%'>";
$swtable .= "\n\t<tr class='head'>\n\t\t<td class='tablehead' colspan=5>Таблица коммутации</td>\n\t</tr>";
$swtable .= "\n\t<tr class='head'>\n\t\t<td class='tablehead'>VID</td>\n\t\t";
$swtable .= "<td class='tablehead'>Название vlan</td>\n\t\t<td class='tablehead'>MAC-адрес</td>\n\t\t";
$swtable .= "<td class='tablehead'>Порт</td>\n\t\t<td class='tablehead'>Тип</td>";
//Выводим таблицу FDB
reset($dot1dTpFdbAddress);
for ($q = 0; $q < count($dot1dTpFdbAddress); $q++) {
    $stat_key = key($dot1dTpFdbAddress);
    $entry_stat = "unknown";
    if ($dot1dTpFdbStatus[$stat_key] == 1) {
        $entry_stat = "Other/Unknown (Возможно, заблокирован IMP)";
    }
    if ($dot1dTpFdbStatus[$stat_key] == 2) {
Example #2
0
    $cableDiagPair1Status[$pi - 1] = @snmpget($ip, $rcomm, ".1.3.6.1.4.1.171.12.58.1.1.1.4." . $pi, $timeout, $retries);
    // Статус 2-й пары
    $cableDiagPair2Status[$pi - 1] = @snmpget($ip, $rcomm, ".1.3.6.1.4.1.171.12.58.1.1.1.5." . $pi, $timeout, $retries);
    // Длина 1-й пары
    $cableDiagPair1Length[$pi - 1] = @snmpget($ip, $rcomm, ".1.3.6.1.4.1.171.12.58.1.1.1.8." . $pi, $timeout, $retries);
    // Длина 2-й пары
    $cableDiagPair2Length[$pi - 1] = @snmpget($ip, $rcomm, ".1.3.6.1.4.1.171.12.58.1.1.1.9." . $pi, $timeout, $retries);
}
// Список названий vlan
$dot1qTpVlanStaticName = @snmpwalkoid($ip, $rcomm, ".1.3.6.1.2.1.17.7.1.4.3.1.1", $timeout, $retries);
// Список нетегированных портов в вланах
$dot1qVlanStaticUntaggedPorts = @snmpwalkoid($ip, $rcomm, ".1.3.6.1.2.1.17.7.1.4.3.1.4", $timeout, $retries);
// Оставляем в ключе массива только нужную информацию
$dot1qTpVlanStaticName = keyscut($dot1qTpVlanStaticName);
// Оставляем в ключе массива только нужную информацию
$dot1qVlanStaticUntaggedPorts = keyscut($dot1qVlanStaticUntaggedPorts);
// Заполняем массив с vlan'ами пустотой, иначе array_splice глючит безбожно
$untag_vlan = array_fill(0, $uniqueportscount[$ModelType], '');
for ($t = 0; $t < count($dot1qTpVlanStaticName); $t++) {
    $vlan_name = $dot1qTpVlanStaticName[key($dot1qTpVlanStaticName)];
    $vlan_name = str_ireplace('"', "", $vlan_name);
    $vid = key($dot1qTpVlanStaticName);
    $uports = $dot1qVlanStaticUntaggedPorts[$vid];
    $uports = stripstr($uports);
    // Чит для 3526, когда вместо hex-строки возвращается string
    if (strlen($uports) == 4) {
        $uports = strtohex($uports);
    }
    $uports = decbin(hexdec($uports));
    while (strlen($uports) < 32) {
        $uports = "0" . $uports;