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 63 64 65 66 67 68 69 70
|
use strict;
use warnings;
use Net::SNMP;
my $OID_sysDescr = '.1.3.6.1.2.1.1.1.0'; #Utilisation pour la description du matériel.
my $host = '192.168.240.67';
#Permet de lancer une connexion sur léquipement.
my ($session, $error) = Net::SNMP->session(
-hostname => $host,
-port => "161",
-version => "2",
-community => "public",
-nonblocking => 1,
);
#Permet de signaler si une erreur a lieu lors de la connexion.
if (!defined $session) {
print "ERREUR: Impossible d'établir la connexion avec ", $host, $error;
}
#Requète SNMP.
my $result = $session->get_request(
-varbindlist => [ $OID_sysDescr ],
-callback => [ \&get_callback, $host ],
);
#Permet de signaler si une erreur a lieu lors de la requête.
if (!defined $result) {
print "ERREUR: Impossible d'effectuer la requete SNMP \n", $session->hostname(), $session->error();
}
# Permet d'afficher le message SNMP en clair.
snmp_dispatcher();
$session->close();
sub get_callback
{
my ($session, $location) = @_;
my $result = $session->var_bind_list();
if (!defined $result) {
print "ERREUR: Impossible d'effectuer la requete SNMP (get) \n",
$session->hostname(), $session->error();
return;
}
print $result->{$OID_sysDescr};
if (!defined $result) {
print "ERREUR: Impossible d'effectué la requête SNMP (set): %s.\n",
$session->hostname(), $session->error();
}
return;
}
sub set_callback
{
my ($session) = @_;
my $result = $session->var_bind_list();
return;
}
<>; |
Partager