Telnet で自動 HTTP リクエスト

サーバの動作確認をしたり、応答内容を直接見たいときは目的のポートに対して telnet コマンド使うことがある。私はよく HTTP の応答ヘッダを確認するのに使う。動作確認とはいえ、同じサーバ に何度も同じようなリクエストを打つこともあったりすると面倒。しかも、最初の GET で始まる 1 行だけならよいが、その他の行を追加したりしているとタイムアウトになることもある。あわてて打つとタイプミス…。

ファイルにコマンドを書いておき、それを実行すれば楽になるだろう。まずは以下のようなスクリプトを試した。

#!/bin/sh
telnet 192.168.1.109 80 <<EOM
GET / HTTP/1.0
Host: home.kendomo.net

EOM

しかし、これではうまくいかない。 telnet のプロンプトが返ってくるまでに GET コマンドを送ってしまうのだろうか。よくわからない。続いて expect を試す。以下のような感じだ。

#!/usr/bin/expect -f
spawn telnet 192.168.1.109 80
expect "Escape character is '^]'.\r"
send "GET / HTTP/1.0\r"
send "Host: home.kendomo.net\r\r"
expect eof

これならうまくいった。

参考
http://www.linux.or.jp/JM/html/expect/man1/expect.1.html
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/~poffice/mail/linux-users/64531

このエントリへのトラックバック

spamが増えたためトラックバック機能は停止中です。

このエントリへのコメント

spamが増えたためコメント機能は停止中です。

Information

サイト内検索

けんども日記

直近 10 件
RSS
RSS 1.0
Home@けんどもネット
diary.php(v2): 2005-06-11
Copyright © 2003-2005 Kendomo.net.