package cisco; use strict; use Exporter; use Expect; use vars qw( $VERSION @ISA @EXPORT @EXPORT_OK $UNAME $PWD $ENABLE $DNAME $IP $LOG $command $result $exp ); $VERSION = 1.00; @ISA = qw(Exporter); @EXPORT = (); @EXPORT_OK = qw(login_auth); ( $UNAME, $PWD, $ENABLE, $DNAME, $IP, $LOG ) = @ARGV; $exp = new Expect; open( LOG, ">>$LOG" ); sub login_auth { $command = "ssh $UNAME" . "@" . "$IP"; $exp->spawn($command) or die "Cannot spawn $command: $!\n"; my $connect = $exp->expect ( 30, [ qr/\(yes\/no\)\?\s*$/ => sub { $exp->send("yes\n"); exp_continue; } ], [ qr/assword:\s*$/ => sub { $exp->send("$PWD\n"); } ], ); $result = $exp->expect(30, "#", ">"); if ($result == 2) { $exp->send("enable\n"); $result = $exp->expect(30, "assword:", "#"); if ($result == 1) { $exp->send("$ENABLE\n"); $result = $exp->expect(30, "assword:", "#"); if ($result == 1) { print LOG "Enable Password Rejected\n"; exit(); } } } $exp->send("term len 0\n"); $exp->expect(10,"#"); } 1;