Re: Telnet into Cisco switches
by naChoZ (Curate) on Jul 11, 2003 at 15:06 UTC
|
I've used it too. This is a snippet from my first perl script (that did anything useful).
my $cs = new Net::Telnet::Cisco (
Errmode => "return",
Timeout => 100,
Prompt => '/>/'
);
$cs->open("$ubr");
$cs->login( $userid, $password);
$cs->cmd( 'terminal length 0');
@lines = $cs->cmd( "show cable modem | inc $mac" );
foreach my $line (@lines) {
chomp $line;
$line =~ s/ +/ /g;
my @values=split(/ /,$line);
push(@scmresults,@values);
}
~~
naChoZ
| [reply] [d/l] |
|
thanks for the replies, but i am running into a login error... i tried to do $session->login(Password => $switch->{PASS1}); but doesnt login complaining about a bad password or something... when i do it by hand it works with that password, also there is no username, it just presents you with a password prompt.
does it make a difference if i do:
if ($session->login(Password => $switch->{PASS1}))
{}
of just:
$session->login(Password => $switch->{PASS1});
| [reply] [d/l] [select] |
|
I am being lazy for the moment and not looking at the man page for Net::Telnet or Net::Telnet::Cisco.
There is a way to get Net::Telnet to write an audit log of the conversation between your script and the device. If
you invoke that you might get some idea of what is going wrong.
Peter L. Berghold | Brewer of Belgian Ales |
Peter@Berghold.Net | www.berghold.net |
Unix Professional |
| [reply] |
|
|
here is my code, in case i am missing something obvious:
my $session;
$session = Net::Telnet::Cisco->new(Host => $switch->{IP});
$session->login(Password => $switch->{PASS1});
$session->close();
| [reply] [d/l] |
|
|
|
|
|
well, i think that the login routine they provide should work, i mean in the documentation they state, "All arguments are optional as of v1.05. Some routers don't ask for a username, they start the login conversation with a password request."
so i mean i think it should work just supplying the password.
| [reply] |
|
|
okay all, i must appologize... but i hope you find this alittle humerous:
turns out the system admin mistyped the password my script was using... silly error.
sorry again
| [reply] |
|
Are there any oddball chars you may need to escape?
~~
naChoZ
| [reply] |
|
|
|
well i tried even to hardcode the password in, and still no go...
$session->login(Password => 'password');
| [reply] [d/l] |
|
yea... it prints fine to the screen
| [reply] |
|
|
well, i suppose i could give it a shot, but the file it is being read from has not spaces, "ipaddress,password"
and i chomp that when i read it in to get rid of the newline, also, i tried the password manually, $session->login(Password => 'password');
so i dont know how there could be a space...
| [reply] [d/l] |
Re: Telnet into Cisco switches
by blue_cowdawg (Monsignor) on Jul 11, 2003 at 14:58 UTC
|
As a matter of fact I do have experience with Net::Telnet::Cisco in particular and telnet'ing into routers and switches.
A while back I wrote a rather convoluted and re-entrant script
to update our MAC address pools in QIP.
Just as an aside: QIP as an IP address management
product sucks. It just sucks less than its competition.
The way my script worked was when run on a machine
it first looked at the routing table on that machine and
figured out what the default router was. The default route
could actually be a switch.
Then we dumped the arp cache for that device and stored
it and then dumped the devices routing table to find
its neighbors. Then for each neighbor we recursed until
we ran out of unique neighbors and had the whole list
of ARP addresses for the enterprise.
Doing this not only allowed us to update our global MAC
pools, but it help us discover routers and switches that
were not supposed to be there. After all this is a
school campus and college students will play!
Net::Telnet::Ciso worked very will for this. What I did
discover though was I had to make my login algorithm
somewhat intelligent because different devices posed
different behavior upon login so my script had to be
sensitive to that.
Peter L. Berghold | Brewer of Belgian Ales |
Peter@Berghold.Net | www.berghold.net |
Unix Professional |
| [reply] |
|
i think i am just going to hard code it into the script, see what happens...
| [reply] |