#!/usr/bin/perl # # File : v1.2_enter_telnet.pl # # use strict; use Expect; &usage unless @ARGV; $|=1; $Expect::Log_Stdout=1; my($stdin) = Expect->exp_init(\*STDIN); my($stdout) = Expect->exp_init(\*STDOUT); my($host) = "$ARGV[0]"; my($user1) = "$ARGV[1]"; my($pwd1) = "$ARGV[2]"; my($user2) = "premson"; my($pwd2) = "regularuser"; my($prompt) = "\$ "; my($extra) = "who > /home/premson/scripts/expect/wholist"; #$my($extra) = "who > wholist"; my($comm) = "telnet"; my($str) = "\t"; (my $exp=Expect->spawn("$comm$str$host")) ? (print "Telnet (Ok)\n") : (die "ERR: Spawn failed: $?\n"); $exp->exp_internal(1); $exp->log_stdout(0); unless ($exp->expect(15, '-re', qr'[$#>:] $')) { print "ERR: Timeout running $comm.\n"; } print "Sending Username...\n"; print $exp "$user1\r"; $exp->expect(15, '-re', qr'[$#>:] $') || warn "ERR sending Username.\n"; print "Sending Password ...\n"; print $exp "$pwd1\r"; $exp->expect(15, '-re', qr'[$#>:] $') || warn "ERR sending Password.\n"; print "Printing command ... \n"; print $exp "$comm$str$host\r"; $exp->expect(15, '-re', qr'[$#>:] $') || warn "ERR sending Command.\n"; print "Sending Second Username...\n"; print $exp "$user2\r"; $exp->expect(15, '-re', qr'[$#>:] $') || warn "ERR sending Username.\n"; print "Sending Second Password ...\n"; print $exp "$pwd2\r"; $exp->expect(15, '-re', qr'[$#>:] $') || warn "ERR sending Password.\n"; print "Checking Credentials ...\n"; ($exp->expect(15, '-re', qr'incorrect$')) ? (die "Encountered incorrect password.\n") : (print "Password Successful.\n"); print "Printing Second command ... \n"; print $exp "$extra\r"; $exp->expect(15, '-re', qr'[$#>:] $') || warn "ERR sending Command.\n"; exit(0); sub usage { print STDERR "\nUsage: \$enter_telnet.pl [hostname] [user] [password]\n\n"; exit 1; }