On Tue, 2003-07-29 at 11:19, [EMAIL PROTECTED] wrote:
> ------------------------------------------------
> On 29 Jul 2003 11:06:09 -0400, K Old <[EMAIL PROTECTED]> wrote:
> 
> > Hello everyone,
> > 
> > I'm trying to use Net::Telnet to connect to a server that has a test
> > account called (appropriately) TEST.  It has no password on doing a
> > normal telnet to the server after supplying the username, I am taken to
> > the shell rather than being prompted for my password.
> > 
> > The prompt I'm given is:
> > 
> > TEST F50:/genii4 $
> > 
> > Heres's the script I wrote:
> > 
> > #!/usr/bin/perl -w
> > #
> > use strict;
> > use Net::Telnet();
> > 
> > my $host = "172.16.1.2";
> > my $user = "TEST";
> > my $pass = "";
> > 
> > my $t = new Net::Telnet(Timeout => 30, Dump_Log => "/tmp/log-dump");
> > $t->open("$host");
> > $t->login(Name => $user, Password => $pass);
> > $t->waitfor('/.*genii4.*\$$/');
> > $t->print('cd $GENSRC');
> > $t->cmd('cd g2oesrc');
> > my @pwd = $t->cmd("pwd");
> > print @pwd;
> > $t->close();
> > 
> 
> >From the docs for Net::Telnet:
> 
> "Use a combination of print() and waitfor() as an alternative to login() or cmd() 
> when they don't do what you want."
> 
> It appears that 'login' requires both a username and password to be asked for 
> otherwise it will timeout, because your case is special (aka no password prompt) you 
> will probably need to mimic the behavior with 'print/waitfor'.
> 
> 
> > This is what's in the log-dump file:
> > 
> 
> <snip> log dump
> 
> > 
> > 
> > The error I get from Net::Telnet is:
> > 
> > timed-out waiting for password prompt at ./telnet.pl line 12
> > 
> > Can anyone offer any ideas how I can get around this.  Don't worry about
> > security issues, it's an internal box and nothing important is on it, I
> > just need to test this as the TEST user.
> > 
> > I've also tried to set the Prompt parameter when initializing the object
> > like so:
> > my $t = new Net::Telnet(Timeout => 30,
> >                         Dump_Log => "/tmp/log-dump",
> >                         Prompt => '/genii4 ?$/i');
> > 
> > 
> > Still no luck.
> > 
> > Any help is appreciated...
> > 
> 
> Check the docs again specifically the section on "What To Know Before Using" and the 
> 'login' method...
> 
> http://danconia.org

I remember seeing that now.... 

Here's the fix (for the archives):

Removed $t->login(Name => $user, Password => $pass);
Added:
$t->waitfor('/login: ?$/');
$t->print("TEST");

Works like a charm.

Thanks Dan!

Kevin
-- 
K Old <[EMAIL PROTECTED]>


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to