Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam
Mam za zadanie utworzyć program do zarządzania siecią. Mam mały problem z pobieraniem bazy MIB.
Aplikacja ma działać pod PHP zatem podczas wywołania snmpwalk() w php dostaję warning a jak wykonam snmpwalk w konsoli to dostaję bazę.
Może ktoś zna odpowiedź?
A może lepiej zastosować jakiś moduł z java lub coś z PERL?
Offline
Zamiast MIB'ow uzywaj OID'ów i poinno wszystko grac ladnie :]
Przy snmpwalk() zwracana jest tablica assoscjacyjna przyklad:
$a = snmpwalk("ip.ip.ip.ip", "public", "transmission.127.1.3.3.1.1.1"); foreach ($a as $c) { print "$c\n"; }
lub jak chesz sobie operwac na oid'ach bo np ostatni czlon cie interesuje :]
$a = snmpwalkoid("ip.ip.ip.ip", "public", "transmission.127.1.3.3.1.1.1"); for (reset($a); $i = key($a); next($a)) { print "$i\n"; }
no i chyba tyle w temacie A pdnane tu oidy sa fikcyjne
Offline
Zgadza się tak jak zgodnie z dokumentacją.
Problem jest taki że zależności od urządzenia nie wszystkie dane są dostępne a nie które nawet jest kilka.
Dlatego potrzebuję podczas inicjalizacji pobrać dane i wiedzieć jakiego typu przechowują dane.
Udało mi się dojść do czegoś takiego:
<?php $a = snmpwalkoid("192.168.3.100", "public", "system"); print_r ($a); ?>
co daje mi
Array ( [SNMPv2-MIB::sysDescr.0] => STRING: DrayTek Corporation [SNMPv2-MIB::sysObjectID.0] => OID: SNMPv2-SMI::enterprises.7367 [DISMAN-EVENT-MIB::sysUpTimeInstance] => Timeticks: (4572827) 12:42:08.27 [SNMPv2-MIB::sysContact.0] => STRING: info@draytek.com [SNMPv2-MIB::sysName.0] => STRING: vigor [SNMPv2-MIB::sysLocation.0] => STRING: [SNMPv2-MIB::sysServices.0] => INTEGER: 78 )
wie ktoś może jak wyciągnąć z tego coś takiego:
SNMP2:sysDescr:STRING .....
Dzięki za pomoc.
Offline