PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
aksktis
Отправлено: 30 Января, 2012 - 13:22:14
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Февр. 2011  


Помог: 0 раз(а)




Добрый день.
вопрос в следующем:
необходимо реализовать сбор некоторой информации со свитчей (3Com + Cisco)

как собираю:

PHP:
скопировать код в буфер обмена
  1.  
  2. $root_ip = '192.168.0.33';
  3. $a = snmpwalkoid($root_ip, "j1579y", "SNMPv2-SMI::mib-2.17.4.3.1.2");
  4. print_r($a);
  5. die();
  6.  



что на выходе:

Спойлер (Отобразить)




но если собирать эту информация через NET-SNMP командой:
$ snmpwalk -Cc -c j1579y -v 1 192.168.0.33 SNMPv2-SMI::mib-2.17.4.3.1.2

то вывод будет:
Спойлер (Отобразить)


что и требуется
собственно результат получен за счет ключа "-Сс" (do not check returned OIDs are increasing)

Вопрос: как заставить функцию php snmpwalk() не проверять OIDы так же как это делает NET-SNMP

альтернативный вариант - юзать net-snmp через shell_exec, но он не желателен.

заранее спасибо за помощь

P.S. кстати, проблема наблюдается далеко не на всех свитчах

(Отредактировано автором: 30 Января, 2012 - 13:30:44)

 
 Top
vlad5503
Отправлено: 02 Июня, 2017 - 04:14:36
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Июнь 2017  


Помог: 0 раз(а)




На днях обновил пакеты на freebsd 10.1. На этом серваке работает мониторинг GPON от Huawey. Так вот после обновы скрипт php
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. header ("Content-Type: text/html; charset=koi8-r");
  3. $ip = "10.11.104.2";
  4. $ro = "maypass";
  5. $NOID = "No Such Instance currently exists at this OID";
  6. #$pon = "4194320384";
  7. //clear_file_ofonu.txt
  8. file_put_contents("./ofonu.txt", "");
  9. echo "<br><p>Обнаруженные, но не прописанные ONT в системе:</p>";
  10.  
  11. $A = snmpwalk("$ip", "$ro", "1.3.6.1.4.1.2011.6.128.1.1.2.48.1.2");
  12.    for ($i=0; $i<count($A); $i++) {
  13. $A2 = str_replace("Hex-STRING: ", "sn=", $A[$i]);
  14. $A3 = str_replace(" ", "", $A2);
  15.    if ($A3 != $NIOD) {
  16.        $fp = fopen ("./ofonu.txt", "a");
  17.        fwrite($fp, "$A3\n");
  18.        fclose($fp);
  19. $file_array = file ("ofonu.txt");
  20. $num_str = count($file_array);
  21. echo "<p>$num_str $A3</p>";
  22.    } else {
  23.        echo "<br><p><a href='./ofonu.txt'>Обнаруженных и не прописанных в системе нет.</a></p>";
  24.    }
  25.    }
  26. echo "<br><a href='http://gpon.maydome.ru/MA5683.html'> Вернуться.</a>";
  27.  
  28. ?>

стал выдавать сообщение такое:
CODE (htmlphp):
скопировать код в буфер обмена
  1. Warning: snmpwalk(): Error in packet at 'SNMPv2-SMI::enterprises.2011.6.128.1.1.2.48.1.2': (noSuchName) There is no such variable name in this MIB. in /usr/local/www/домен/ter.php on line 16
  2.  

Этот же запрос отправляю из консоли или с помощью скрипта shell получаю два варианта ответа, в соответствии от ситуации на оборудовании.
Есть виртуалка freebsd 10.1 на которой мониторинг создавался. Виртуалка не имеет обновлений пакетов. Этот же скрипт работает без ошибок.

Сверил пакеты..
на обновленной стоит:
CODE (htmlphp):
скопировать код в буфер обмена
  1. # pkg info |grep snmp
  2. net-snmp-5.7.3_14              Extendable SNMP implementation
  3. php56-snmp-5.6.30              The snmp shared extension for php


на виртуалке стоит:
CODE (htmlphp):
скопировать код в буфер обмена
  1. # pkg info |grep snmp
  2. net-snmp-5.7.3_11              Extendable SNMP implementation
  3. php56-snmp-5.6.0_1             The snmp shared extension for php
  4.  

Чтение описаний про php версии мне не помогло...
Подскажите как подправить ситауцию.. На что мне надо обратить внимание, чтоб понять где не так работает...

(Отредактировано автором: 02 Июня, 2017 - 05:28:32)

 
 Top
Sail
Отправлено: 02 Июня, 2017 - 08:02:29
Post Id



Участник


Покинул форум
Сообщений всего: 1085
Дата рег-ции: Февр. 2014  


Помог: 56 раз(а)




vlad5503 пишет:
Чтение описаний про php версии мне не помогло...
... На что мне надо обратить внимание, чтоб понять где не так работает...

Тут пишут (FAQ:Applications_09), что к строчке-идентификатору команды надо добавить '.0'
А в общем - определите ip хоста, обращение к которому вызывает это предупреждение и тестируйте его на предмет реакции на эту команду из консоли... ну или в документацию гляньте, где его mib прописана.
 
 Top
vlad5503
Отправлено: 02 Июня, 2017 - 08:50:36
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Июнь 2017  


Помог: 0 раз(а)




Попробовал Ваш вариант подсказки. Выдает ошибку...
CODE (htmlphp):
скопировать код в буфер обмена
  1. Warning: snmpwalk(): Error in packet at 'SNMPv2-SMI::enterprises.2011.6.128.1.1.2.48.1.2.0': (noSuchName) There is no such variable name in this MIB. in /usr/local/www/домен/ter.php on line 16
  2.  


Из консоли:
CODE (htmlphp):
скопировать код в буфер обмена
  1. # snmpwalk -v2c -c maypass 10.11.104.2 1.3.6.1.4.1.2011.6.128.1.1.2.48.1.2.0
  2. SNMPv2-SMI::enterprises.2011.6.128.1.1.2.48.1.2.0 = No Such Instance currently exists at this OID
  3.  

Что говорит, что нет не зарегестрированных терминалах на линиях. Т.е. это один из верных ответов.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Работа с сетью »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB