Script perl pour se connecter à un hôte distant

tdloic Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   -  
blux Messages postés 27166 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
J'ai écris un script Perl pour faire des requêtes SNMP. le problème est que je n'arrive pas à me connecter sur des équipements ayant un login et un mot de passe. J'ai besoin d'aide SVP.
merci d'avance.
PS: voici le code
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;
   }
   
   <>;



A voir également:

2 réponses


 
Salut,

je n'utilise pas Net::SNMP, mais sa documentation sur CPAN indique que le constructeur supporte les arguments suivants gérant l'authentification :

session() - create a new Net::SNMP object

   ($session, $error) = Net::SNMP->session(
(...)
                           [-username      => $username,]    # v3
                           [-authkey       => $authkey,]     # v3
                           [-authpassword  => $authpasswd,]  # v3
                           [-authprotocol  => $authproto,]   # v3
                           [-privkey       => $privkey,]     # v3
                           [-privpassword  => $privpasswd,]  # v3
                           [-privprotocol  => $privproto,]   # v3
                        );


qui sont absents de ton script.


Dal
0
tdloic Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   68
 
merci Dal. J'ai déjà lu cette documentation sur CPAN. Mais cela ne résoud pas mon problème, je parle plutôt de login et de mot de passe des équipements. Et en plus j'utilise SNMPv2c, or les paramètres que tu as cité ne sont valide que sous SNMPv3
0
blux Messages postés 27166 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
Salut,

tu prends un user SNMP ou un user de connexion 'standard' ?

Quel message d'erreur as-tu ? Ou quel comportement observes-tu ?
0