Определение состояния порта на свичах Dlink на PHP

<?php

// Данный код создан и распространяется по лицензии GPL v3
// Изначальный автор данного кода - Грибов Павел
// http://грибовы.рф

function GetEnt($res){
    $zz=explode("INTEGER:", $res);
    if (is_array($zz)==true) {return trim($zz[1]);} else
    {return "";};
};

//запускаем тест проверки кабеля

 $res=shell_exec("snmpset -v2c -c X-Files $devip 1.3.6.1.4.1.171.12.58.1.1.1.12.$port i 1");
 $res=GetEnt($res);
 if ($res=="1"){
 //проверяем что он завершился:
 $res=shell_exec("snmpget -v2c -c X-Files $devip 1.3.6.1.4.1.171.12.58.1.1.1.12.$port");
 $res=GetEnt($res);
 if ($res!="3"){
     //еще разок тестанем!
     $res=shell_exec("snmpget -v2c -c X-Files $devip 1.3.6.1.4.1.171.12.58.1.1.1.12.$port");
     $res=GetEnt($res);
 };
 if ($res=="3"){
   //есть ли линк?
   $res=shell_exec("snmpget -v2c -c X-Files $devip 1.3.6.1.4.1.171.12.58.1.1.1.3.$port");
   $res=GetEnt($res);
   if ($res=="1"){echo "-линк есть</br>";} else {echo "-линка нет</br>";};
   //состояние 1 пары
   $res=shell_exec("snmpget -v2c -c X-Files $devip 1.3.6.1.4.1.171.12.58.1.1.1.4.$port");
   $res=GetEnt($res);
   if ($res=="0"){echo "-1 пара ОК</br>";} else {echo "-1 пара BAD</br>";};
   //состояние 2 пары
   $res=shell_exec("snmpget -v2c -c X-Files $devip 1.3.6.1.4.1.171.12.58.1.1.1.5.$port");
   $res=GetEnt($res);
   if ($res=="0"){echo "-2 пара ОК</br>";} else {echo "-2 пара BAD</br>";};
   //состояние 3 пары
   $res=shell_exec("snmpget -v2c -c X-Files $devip 1.3.6.1.4.1.171.12.58.1.1.1.6.$port");
   $res=GetEnt($res);
   if ($res=="0"){echo "-3 пара ОК</br>";} else {echo "-3 пара BAD</br>";};
   //состояние 4 пары
   $res=shell_exec("snmpget -v2c -c X-Files $devip 1.3.6.1.4.1.171.12.58.1.1.1.7.$port");
   $res=GetEnt($res);
   if ($res=="0"){echo "-4 пара ОК</br>";} else {echo "-4 пара BAD</br>";};
   
   //определяем длинну пар
   $res=shell_exec("snmpget -v2c -c X-Files $devip 1.3.6.1.4.1.171.12.58.1.1.1.8.$port");
   $res=GetEnt($res);
   echo "-длина 1 пары $res</br>";
   $res=shell_exec("snmpget -v2c -c X-Files $devip 1.3.6.1.4.1.171.12.58.1.1.1.9.$port");
   $res=GetEnt($res);
   echo "-длина 2 пары $res</br>";
   $res=shell_exec("snmpget -v2c -c X-Files $devip 1.3.6.1.4.1.171.12.58.1.1.1.10.$port");
   $res=GetEnt($res);
   echo "-длина 3 пары $res</br>";
   $res=shell_exec("snmpget -v2c -c X-Files $devip 1.3.6.1.4.1.171.12.58.1.1.1.11.$port");
   $res=GetEnt($res);                              
   echo "-длина 4 пары $res</br>";
   
   //Определяем состояние кабеля
   $res=shell_exec("snmpset -v2c -c X-Files $devip 1.3.6.1.4.1.171.12.58.1.1.1.12.$port i 1");
   $res=shell_exec("snmpget -v2c -c X-Files $devip 1.3.6.1.4.1.171.12.58.1.1.1.4.$port");
   $res=GetEnt($res);
   if ($res=="8") {echo "-Кабель не подключен</br>";};
   if ($res=="1") {echo "-Кабель воткнут с одной стороны (второй конец висит в воздухе)</br>";};
     
   
 } else {
 ?>
    <div class="alert alert-error">
        Не удалось завершить опрос пары!
    </div>
 <?php
};
 } else {
 ?>
    <div class="alert alert-error">
        Не удалось выполнить SNMP запрос!
    </div>
 <?php
};

Сделано по мотивам: http://wiki.sirmax.noname.com.ua/index.php/Dlink_Cable_Tester


Комментарии:

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.