Net::Telnet
Telnetクライアントモジュール
use Net::Telnet;
パッケージをロードする。
my $telnet = Net::Telnet->new($host);
インスタンスを生成してTelnetサーバに接続する。
$host:Telnetサーバのホスト名:ポート番号、または、IPアドレス:ポート番号。
ポート番号のデフォルトは23。
my $telnet = Net::Telnet->new(%options);
%options:主要なオプションは下記の通り
Host:Telnetサーバのホスト名、または、IPアドレス。デフォルトはlocalhost。
Port:Telnetサーバのポート番号。デフォルトは23。
Prompt:cmdメソッドで受信待ちするプロンプト文字列。/正規表現/
使用可。
デフォルトは/[\$%#>] $/
Timeout:タイムアウト時間。デフォルトは10秒。
Input_log:サーバからの応答を記録するログファイル名。通常のサーバは、クライアントの入力もエコーバックするので、このパラメタを指定すれば、入出力両方をログできる。接続と同時にログ出力が開始される。
Output_log:サーバへの送信を記録するログファイル名。接続と同時にログの出力が開始される。
Dump_log:サーバとの入出力を16進ダンプ形式で記録するログファイル名。接続と同時にログ出力が開始され
る。
Binmode:改行コード変換モード。0の時、LF←→CR/LFの変換を行なう。デフォルトは0。
my $ok = $telnet->login($username, $password);
ログインする。ログインプロンプトは、下記の形式が想定されている。それ以外の場合は、waitforメソッドとprintメソッドで実現する事。
ログインプロンプト)
/login[: ]*$/i
/username[: ]*$/i
パスワードプロンプト)
/password[: ]*$/i
my $prev = $telnet->binmode($mode);
改行コード変換モードを設定する。
my $fh = $telnet->dump_log($filename);
dump_logを開始する。
my $fh = $telnet->dump_log;
dump_logを停止する。
my $fh =$telnet->input_log($filename);
input_logを開始する。
my $fh = $telnet->input_log;
input_logを停止する。
my $fh = $telnet->output_log($filename);
output_logを開始する。
my $fh = $telnet->output_log;
output_logを停止する。
my $ok = $telnet->cmd($string);
$stringと"\n"を送信し、プロンプトが戻ってくるまで待つ。
my $ok = $telnet->print(@list);
@listを"\n"で区切りながら送信する。
my $matchop = $telnet->prompt;
プロンプトが戻ってくるまで待つ。
my $ok = $telnet->put($string);
$stringを送信する(\nは送信しない)。
my $ok = $telnet->waitfor($matchop);
$matchop(/正規表現/
可)に一致する文字列を受信するまで待ち、マッチした文字列を返す。
my $ok = $telnet->close();
ログアウトする。