This is a lil perl module I wrote to talk to cisco's.
Some of you guys out there could prolly write better (or just tell me how horrible my code is)
But Iam bored and felt like posting my code.
the pm ...
Some of you guys out there could prolly write better (or just tell me how horrible my code is)
But Iam bored and felt like posting my code.
the pm ...
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 |
Back to
Cool Uses for Perl