
telnet を使用して、たとえば web のデータを自動的に取得しようとしています。
80 番ポートに接続して
接続完了を待った後 http リクエストを出力する
ということを意図していますが、下記環境では動作しません。
なぜでしょうか?
$ uname -a
Linux srv4 2.6.32-36-generic #79-Ubuntu SMP Tue Nov 8 22:29:26 UTC 2011 i686 GNU/Linux
$ (sleep 3; echo "GET / HTTP/1.0"; echo;) | telnet www.google.co.jp 80
Trying 173.194.38.84...
Connected to www.l.google.com.
Escape character is '^]'.
Connection closed by foreign host.
よろしくおねがいします。
No.1ベストアンサー
- 回答日時:
最後に待つ必要があります。
今のままだと、最後の「echo」で空行を出力したあと、すぐにパイプ入力元の「(sleep 3…echo;)」の実行が終了します。そうすると、そこで入力が途切れたtelnetは即座に実行を終了させてしまうのです。あと、
・最初に3秒待つ必要はありません。
・Host: ヘッダは出力しておいた方が良いです。(質問者さんが挙げたgoogle も、Hostヘッダ無しだと 302 が返ってきます)
ですので、まとめると
(echo "GET / HTTP/1.0"; echo "Host: www.google.co.jp"; echo; sleep 3) | telnet www.google.co.jp 80
とすればうまくいきます。
(ただし、データ量が多く取得に3秒以上かかる場合は、sleepの時間を増やさないと、途中で終わってしまうことになります)
No.2
- 回答日時:
telnetにリダイレクトは使えません。
他の手段を使ってください。wget http://www.google.co.jp/
とか。
bashだと、リダイレクトを使って
#!/bin/bash
exec 3<> /dev/tcp/www.google.co.jp/80
echo GET / HTTP/1.1 >&3
echo Host: www.google.co.jp >&3
echo Connection: close >&3
echo >&3
cat <&3
とかも出来ます。
どうしてもtelnetをコントロールしたいのなら、expectというコマンドを使います。
そんな方法があるんですね! やっぱり質問してよかったです。 今後、参考にさせていただきたく思います。
教えていただき、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「トゥ]の出し方
-
LinuxでWine使うとどのくらいWi...
-
Core 2 Duo の古いパソコンに最...
-
ubuntu(linux)のシャットダウン...
-
私のパソコンでVirtualBoxは使...
-
linuxのIMEの件
-
windows10を使っています。 wsl...
-
Ubuntu on Xorgのログインについて
-
lubuntuのインストールが終わり...
-
ubuntuのシャットダウンが進ま...
-
LinuxのUbuntuのアップデートに...
-
Linux のシェルスクリプトの強...
-
Windowsのローカルディレクトリ...
-
WinSCPでLinux(CentOS6.10)に...
-
ubuntu 22日本語Remixのisoイメ...
-
「/var/log」内のログの削除の...
-
zorin OS
-
ssh接続しようとしたらエラーメ...
-
Ububtuでファイル共有できない...
-
EXT4-fs error (device sdb3): ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンド終了ステータス
-
実行中のシェルスクリプト自体...
-
OSがプログラムをどのように実...
-
UNIX Cシェルで実数の比較
-
デフォルトシェルの調べ方
-
cshの標準出力を制御したい
-
Bシェルでパイプ→exitがうまく...
-
Shellのパターンマッチについて
-
telnet へのパイプができないです
-
FTPコマンドの戻り値について
-
IFS変数について詳しい方教えて...
-
cygwinシェルスクリプト内での...
-
diskpart でパーティションの一...
-
シェルの実行について
-
Bシェル内でのユーザー変更
-
csh(Cシェル)のevalに関して
-
cshで変数名の入れ子ができない
-
vagrant upでエラーが表示され...
-
Mac OSXのターミナルでemacsを起動
-
cronでftp自動転送を行いたい
おすすめ情報