Forum: Ruby Net::Telnet

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
Shea M. (Guest)
on 2006-03-15 16:54
(Received via mailing list)
I am having problems with the Telnet module.

Here is my test script:

require 'net/telnet'

tn = 'Host' => 'matilda',\
                       'Prompt' => '$' ) { |s| puts s }
tn.login('sheam', 'my_pass') { |s| puts s }
tn.cmd( 'ls -l' ) { |s| puts s }

exit 0

If I run this to a solaris telnet server (from a linux box), I get the
greeting message and a prompt (not my specified prompt, but that is ok).
  But my command is never executed, and a timeout occurs.  I do not get
the '>>>LOGIN COMPLETE' message.

If I run this to a WinXP telnet server (from a XP box), I get this:
Trying fifastbuild1...
Connected to fifastbuild1.

Welcome to Microsoft Telnet Service



Then, a timeout.  It appears that my password is not actually being
  Ultimately it is the WinXP server that I want to connect to.  I was
just fooling with my solaris and linux box for further testing.

I tried chaning the login line to tn.login('user'), followed by a
tn.puts('password'), but it still did not get past the tn.login() line.


Shea M. (Guest)
on 2006-03-15 17:44
(Received via mailing list)
Ok, the following works.


require 'net/telnet'

l_prompt = "Documents and Settings"

tn = 'Host' => 'matilda',
                       'Prompt' => />$/m ) { |s| puts s }

tn.waitfor(/login:/i) { |s| puts s }
tn.puts('Testing'){|s| puts s}

tn.waitfor(/password:/i) { |s| puts s }
tn.puts('password'){|s|puts s}

#this line is MS specific
tn.waitfor( /Welcome/i ) { |s| puts s }

tn.cmd( 'dir' ){|s| puts s}

exit 0

So the module was not picking up on the prompts.  I thought the Prompt
variable was to specify what I wanted my prompt to look like, not the
prompt which the module looks for to determine EOT.  Properly setting
the Prompt value makes the 'cmd' function work.  But I still have to do
the login manually.  Also, I have to have the correct Prompt value for
each machine/user/os.

Am I doing something wrong?


This topic is locked and can not be replied to.