# modulos necessarios para o funcionamento do script
use Data::Dumper;
use strict;
use Net::SNMP;
# populando uma lista com os OIDs que queremos coletar
my @oids = qw/1.3.6.1.2.1.1.3.0 1.3.6.1.2.1.1.5.0 1.3.6.1.2.1.1.6.0/;
# criando a sessão de coleta SNMP
my ($session, $error) = Net::SNMP->session(
-hostname => 'localhost',
-port => '161',
-community => 'public',
);
# estrutura de controle
if (!defined $session) {
printf "ERROR: %s.\n", $error;
exit 1;
}
# coletando de fato as informações
my $result = $session->get_request(
-varbindlist => \@oids,
);
# finalizando a sessão SNMP
$session->close();
# estrutura de controle caso não tenhamos conseguido coletar
#informacoes
if (!defined $result) {
printf "ERROR: %s.\n", $session->error();
$session->close();
exit 1;
}
# imprimindo informacoes
print "Referencia do Hash: $result\n";
print "Conteudo do hash\n";
print Dumper \%{$result};
# percorrendo a lista de OIDs e imprimindo seus valores
print "\nConteudo da coleta SNMP\n";
foreach my $oid (@oids) {
chomp($oid);
print "$oid\t$result->{$oid}\n";
}
# saindo do script
exit 0;