私はRubyに非常に慣れていないので、基本的なスクリプトを実行するためにそれを使用しようとしています. つまり、マシンに telnet で接続し、dos ftp クライアントを使用していくつかのファイルをプルします。
私が抱えている問題は、(コマンド プロンプトから) 手動でマシンに telnet しようとすると、次のメッセージが表示されることです。
Welcome to Microsoft Telnet Client Escape Character is 'CTRL+]' You are about to send your password information to a remote computer in Internet zone. This might not be safe. Do you want to send anyway(y/n):
ruby の telnet クラス (net/telnet) login() を使用すると、パスワード プロンプトでハングします。これは、メッセージを考慮に入れておらず、ユーザー名をメッセージに送信し、パスワードをユーザー名プロンプトに送信していると思われます。この状況をどのように処理しますか?
編集:パスワードプロンプト中にログインプロセスがハングしているようです。これが上記のメッセージによって引き起こされているというのは私の疑いにすぎません。他のアイデアは大歓迎です。すべてをエコーしようとしたところ、次のようになりました。
irb(main):030:0> tn = Net::Telnet::new("Host"=>"xxx.xxx.xxx.xxx", "Timeout"=>10) => #<TCPSocket:0x2d8aafc>
irb(main):031:0> tn.login("administrator", "password") {|c| print c}
Welcome to Microsoft Telnet Service
login: administrator
password: Timeout::Error: timed out while waiting for more data
from C:/Ruby/lib/ruby/1.8/net/telnet.rb:551:in `waitfor'
from C:/Ruby/lib/ruby/1.8/net/telnet.rb:685:in `cmd'
from C:/Ruby/lib/ruby/1.8/net/telnet.rb:730:in `login'