[#44431] コンストラクタの引数について&インスタンス変数の持ち方について — Akira Hayakawa <ruby@...>

度々オブジェクト指向についての質問ですいません。

17 messages 2008/01/04
[#44433] Re: コンストラクタの引数について&インスタンス変数の持ち方について — Yukihiro Matsumoto <matz@...> 2008/01/04

まつもと ゆきひろです

[#44469] pdf 作成 ライブラリ — "Luiz Aoki" <luizruby@...>

はじめまして、青木ルイスと申します、

14 messages 2008/01/12
[#44479] ファイル出力時のprintについて — m-hatake@... 2008/01/16

畠山と申します。

[#44483] format %g の丸めについて — 山崎雄介 <y-yamasaki@...>

山崎(ゆ)です。

14 messages 2008/01/16

[ruby-list:44532] Re: 多段telnetするプログラムの作り方

From: cuzic <cuzic@...>
Date: 2008-01-23 11:36:29 UTC
List: ruby-list #44532
cuzic です。

> telnet.cmd(" telnet ServerC")
は、telnet ServerC という文字列を送ったあとに Prompt で設定された文字列を待ちます。

この場合、telnet コマンドを実行したあと、Prompt が返ってこないためにエラーとなっています。

正しく動作させるために
 telnet.puts("telnet ServerC")
を使って、 Prompt を待たずに文字列を送るようにするとよいでしょう。

その後、login プロンプトを waitfor メソッドなどを使って待ち受けて
ログイン等の手続きを書けばよいと思います。

ではでは。


08/01/23 に 徳島学<manabu.tokushima@gmail.com> さんは書きました:
> 初歩的な質問で申し訳ありませんが...。
>
> 多段telnetをしてコマンドを打って結果を得るプログラムを作りたいのですが
> うまくいきません。
>
> サーバAにプログラムがあります。サーバAからサーバBへtelnet。
> そこからサーバCへtelnet。そこでコマンドを打ち、結果をサーバAの
> プログラムで記録したい。(  A -> B -> C  )
>
>
> ただtelnetして結果を得るだけなら簡単に動きました。
>
> require 'net/telnet'
> telnet = Net::Telnet.new("Host" => "ServerB")
> telnet.login("username", "password")
> telnet.cmd("String" => "ls", "Match" => /[$%#> ] \z/n, "Timeout" => 5)
> {|c| pring c}
>
> telnet.cmd("exit")
> telnet.close
>
>
> exitするまえに、下の感じに書いてみましたがtelnet ServerCのところで次のエラーとなります。
> 'waitfor' : timed out while waiting for more data (Timeout::Error)
>
> telnet.cmd(" telnet ServerC")
> telnet.waitfor(/login[: ]*\zn)
> telnet.cmd("username")
> telnet.waitfor(/Password[: ]*\zn)
> telnet.cmd("password")
> ....
>
>
> これではダメなんだろうなぁとは思うのですが、
> どうしたらよいのか調べてみても分かりませんでした。
>
> ご存知の方、なにかヒントをお持ちの方、アドアイスお願い致します。
>
>
> $ ruby -v
> ruby 1.8.5 (2006-08-25) [i386-linux]
>
> 徳島
>
>

In This Thread