and the example script ...package cisco; use Net::Telnet; use Carp; sub new { my($class) = shift; my($self) = {}; my(%arg) = @_; my($ok); $self->{Timeout} = $arg{Timeout} || 10; $self->{Prompt} = $arg{Prompt} || undef(); $self->{Host} = $arg{Host} || undef(); $self->{Username} = $arg{Username} || undef(); $self->{Password} = $arg{Password} || undef(); if (!$arg{Prompt} && !$arg{Host}) { $self->{Error} = "Bad args (you did read the documentation didnt y +ou?)"; return(0); } bless($self,$class); return($self); } sub connect { my($self) = shift;; my($net,$ok) = undef(); my($prompt) = "/$self->{Prompt}/"; $net = new Net::Telnet(Timeout=>$self->{Timeout}, Prompt=>'/$self->{Prompt}/'); $ok = $net->open($self->{Host}); if (!$ok) { $self->{Error} = "Problem with opening a network connection !"; return(0); } else { $self->{Net} = $net; } if ($self->{Username}) { $net->login(Name=>$self->{Username}, Password=>$self->{Password}, Prompt=>$prompt); } return($net); } sub send { my($self) = shift; my($command) = shift; my(@data); my($prompt) = $self->{Prompt}; my($net) = $self->{Net}; $net->print($command); while(<$net>) { if ($_ =~ /$prompt/) { last; } push(@data,$_); $net->print(" "); } return(@data); } sub errorstr { my($self) = shift; return($self->{Error}); } 1;
#!/usr/bin/perl use cisco; $cis = new cisco(Host=>"somerouter.domain.com", # router hostname Username=>"bob", # username (bob is good ) Password=>"bleh", # hehe Prompt=>"router>", # this is a common prompt Timeout=>10); # prolly wont need to touch this $r = $cis->connect; if (!$r) { print $cis->errorstr(),"\n"; exit(-1); } foreach($cis->send("show bridge")) { print $_; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
RE: cisco.pm (cisco.pm at CPAN also)
by ybiC (Prior) on Jul 19, 2000 at 16:51 UTC | |
by ua (Initiate) on Aug 02, 2000 at 05:00 UTC | |
by Anonymous Monk on May 04, 2001 at 22:29 UTC | |
by kderkinderen (Initiate) on Aug 07, 2001 at 08:17 UTC | |
by Anonymous Monk on Oct 30, 2003 at 06:21 UTC | |
by lindex (Friar) on Aug 15, 2000 at 01:07 UTC | |
by lindex (Friar) on Jul 20, 2000 at 02:31 UTC | |
by ybiC (Prior) on Jul 20, 2000 at 19:01 UTC |