Определение состояния порта на свичах Dlink на PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
<?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