1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| #!/usr/bin/perl -w
use strict;
use warnings;
my $host;
print "Saisir une adresse IP:";
$host=<STDIN>;
use lib "./usr/lib/perl5/";
use SNMP::Multi;
my $req = SNMP::Multi::VarReq->new (
nonrepeaters => 1,
hosts => [ $host ],
vars => [ ['sysName'], ['sysContact'], ['sysLocation'], ['1.3.6.1.4.1.318.1.1.12.3.5.1.1.1'], ['1.3.6.1.4.1.318.1.1.12.3.5.1.1.2'], ['1.3.6.1.4.1.318.1.1.12.3.5.1.1.4'] ],
);
die "VarReq: $SNMP::Multi::VarReq::error\n" unless $req;
my $sm = SNMP::Multi->new (
Method => 'bulkwalk',
MaxSessions => 32,
PduPacking => 16,
Community => 'public',
Version => '2c',
Timeout => 5,
Retries => 3,
UseNumeric => 1,
)
or die "$SNMP::Multi::error\n";
$sm->request($req) or die $sm->error;
my $resp = $sm->execute() or die "Execute: $SNMP::Multi::error\n";
print "Reponse obtenu pour ", (join ' ', $resp->hostnames()), "\n";
for my $host ($resp->hosts())
{
print "Resultat pour $host: \n";
for my $result ($host->results())
{
if ($result->error())
{
print "Erreur avec $host: ", $result->error(), "\n";
next;
}
print "Valeurs pour $host: ", (join ' ', $result->values());
for my $varlist ($result->varlists())
{
print map { "\t" . $_->fmt() . "\n" } @$varlist;
}
print "\n";
}
}
print "2 libre 1 pris";
open (LIRE,"test.csv");
open (ECRIRE,">test.csv");
while () {
print ECRIRE $result ;
}
close (ECRIRE);
close (LIRE); |
Partager