Net::SNMP

Net::SNMP - Perl - Programmation

Marsh Posté le 09-04-2004 à 09:04:20    

hop,
 
voila j'utilise le module Net::SNMP pour aller chercher des infos sur des routeurs mais g quelques difficultés à utiliser les fonctions disponibles
(j'utilise ce module car il fournit des fonctions non-bloquante ce qui accelere considerablement l'execution)
 
voila le code:
 

Citation :

use DBI;
use Net::SNMP;
 
my $con_db=DBI->connect("DBI:mysql:site","root" );
my $req=$con_db->prepare("select * from ..." );
$req->execute;
 
while(@var=$req->fetchrow_array()){
  my $host ="$var[1]"; // IP
  $o1 = ".1.3.6.1.2.1.2.2.1.10."."$var[5]";  
  $o2 = ".1.3.6.1.2.1.2.2.1.16."."$var[5]";
 
  //$var[5] = numero d'interface
 
      my ($session, $error) = Net::SNMP->session(
         -hostname    => $host,
         -community => "$var[3]",
         -nonblocking => 0x1
      );
      if (!defined($session)) {
         printf("ERROR: %s.\n", $error);
         exit 1;
      }
      $session->get_request(
          -varbindlist => [$o1,$o2],
          -callback    => [\&aff]
      );
}
 
snmp_dispatcher();
 
 exit 0;
 
   sub aff
   {
      local ($session2) = (@_);
      local ($str)=$session2->error;
      print "$str";
 
         local ($r1) = $session2->var_bind_list->{$o1};
         local ($r2) = $session2->var_bind_list->{$o2};
         local ($h) = $session2->hostname;
         print "$h $r1 $r2";
         print "\n";
 
 
      $session2->error_status;
   }


 
normalement il devrait afficher l'ip, le traffic in et out mais il n'affiche que l'ip...
 
j'ai comparé avec les exemples de la doc mais ya rien qui change fondamentalement... comprends po!
Si ya quelqu'un qui a deja utilisé ca, ca serait bien gentil de m'eclairer, je suis surement passé à coté de qqch...


Message édité par chopman le 09-04-2004 à 09:05:56
Reply

Marsh Posté le 09-04-2004 à 09:04:20   

Reply

Marsh Posté le 09-04-2004 à 09:16:24    

g testé en mettant snmp_dispatcher(); dans la boucle while... ca fonctionne mais ca perd tout son interet vu que quand le prog arrive à cette fonction, il attend que toutes les requetes aient renvoyées une reponse et donc ca rebloque l'execution... aaaaaaaaaaaaaaaargh

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed