LINUX.ORG.RU

Net::SNMP


0

0

Как вывести результат?

use Net::SNMP;
my ($session,$error) = Net::SNMP->session(
-hostname => "192.168.1.76",
-version => "snmpv3",
-username => "login",
-authpassword => "pass",
-authprotocol => "md5",
-privpassword => "pass",
-privprotocol => "des");
die "Error connect: $error" unless ($session);
my $result = $session->get_request("1.3.6.1.4.1.171.12.1.1.6");
die "Error request: ".$session->error unless (defined $result);
$session->close;
print $result->{"1.3.6.1.4.1.171.12.1.1.6"}."\n";

вывод:
noSuchObject

Вот что должно получится
snmpwalk -v3 -u login -l authPriv -a MD5 -A pass -x DES -X pass 192.168.1.76 1.3.6.1.4.1.171.12.1.1.6
SNMPv2-SMI::enterprises.171.12.1.1.6.1.0 = INTEGER: 0
SNMPv2-SMI::enterprises.171.12.1.1.6.2.0 = INTEGER: 0
SNMPv2-SMI::enterprises.171.12.1.1.6.3.0 = INTEGER: 0

★★

#!/usr/bin/perl
use Net::SNMP;
if (!@ARGV) {print "Определение SysID, использование:\n$0 IP \[community string\]\ndefault community string -- public\n";exit}

my ($host, $comm)= @ARGV;

($session, $error) = Net::SNMP->session ( -hostname => $host,
-community => $comm || 'public',
-port => 161,
-version => 2,
);
if (!defined($session)){
print "connectoin err\n$error\n";
}



$testOBJ='.1.3.6.1.2.1.1.2.0';

$tab = $session->get_request (
-varbindlist => [$testOBJ]
);
if (!defined($tab)){
# print $session->error,"\n";
$session->close;
}
$c_oid= $tab->{$testOBJ};
$session->close;

print $c_oid."\n";


gnomino
()
Ответ на: комментарий от gnomino

твой пример для одиночного вывода... с этим все впорядке... 
а cpan я читаю в первую очередь... если что-то не получается, то сюда...
вот, не получается... если вкурсе как сделать помоги на данном примере... или с любым другим где должен быть множественный вывод...

lioncub ★★
() автор топика

Еси тебе надо обходить деревья то это надо делать с помощью get_next_request, готового ничего под рукой нет, показать не на чем.

gnomino
()
Ответ на: комментарий от gnomino

из cpan вроде бы надо get_bulk_request...
но не то ни другое так и не получается... а спримерами в сети скудно... точнее их нет..

lioncub ★★
() автор топика
Ответ на: комментарий от gnomino

[офтоп]
>$testOBJ='.1.3.6.1.2.1.1.2.0';


как интересно эти идентификаторы запоминать? есть где готовые словари с этой фигнёй?

dimon555 ★★★★★
()
Ответ на: комментарий от dimon555

>как интересно эти идентификаторы запоминать? есть где готовые словари с этой фигнёй?
Открой для себя MIB'ы и snmptranslate
ЗЫ Кто-то явно пошутил навзвав протокол _простым_ протоколом управления сетью, мозготраха с ним...

gnomino
()
Ответ на: комментарий от gnomino

c snmpwalk и snmpget проблем вообще никаких нет... был бs на perl такой же простой модуль...
c snmpwalk и snmpget нельзя сделать контроль ошибок.

lioncub ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.