URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6702
[ Назад ]

Исходное сообщение
"Net::Snmp Список Интерфесов"

Отправлено LILO , 24-Авг-07 13:03 
Добрый день.

потребовалось при пмощи net::snmp получить с устройства список интерфесов, но не как не получается, хотя при это обычным snmpwalk получается.

%%%
my ($session, $error) = Net::SNMP->session(
    -hostname  => shift || 'ip',
    -community => shift || 'piblic',
    -port      => shift || 161,
    -version   => shift || 1
);

$int = ".1.3.6.1.2.1.2.2.1.2";

$result = $session->get_request(
    -varbindlist => [$int]
);

printf("host\n",
      $session->hostname, $result->{$int}
         );
$session->close;
%%%
через snmpwalk выводится нормально:
IF-MIB::ifDescr.1 = STRING: FastEthernet0/0
IF-MIB::ifDescr.2 = STRING: Serial0/0
IF-MIB::ifDescr.3 = STRING: FastEthernet0/1
IF-MIB::ifDescr.4 = STRING: FastEthernet2/0
IF-MIB::ifDescr.5 = STRING: Null0
...

Если не сложно подскажите как решить проблему, было бы здорово если покажите пример.


Содержание

Сообщения в этом обсуждении
"Net::Snmp Список Интерфесов"
Отправлено anonymous , 24-Авг-07 23:08 
>    -community => shift || 'piblic',

наверное, public, поэтому и не пускает...


"Net::Snmp Список Интерфесов"
Отправлено rootd , 08-Май-08 17:54 
>Если не сложно подскажите как решить проблему, было бы здорово если покажите
>пример.

my $int = ".1.3.6.1.2.1.2.2.1.2";

my $result = $session->get_table(
    -baseoid => [$int]
);

foreach(keys %$result) {
    print($_." = ".($result->{$_})."\n");
}