パスワードを忘れた? アカウント作成
612431 journal

mumumuの日記: basic expression(2) 2

日記 by mumumu

echo -e "GET / HTTP/1.0\n" | nc xxx.xxx.xxx.xx.jp 80

----

HTTPサーバの生存テストに使うこの基本語彙。好きな
人のサーバをつんつんするのに使えます(謎 

とはいえ、

wget http://xxx.xxx.xxx.xx.jp/

でもよい気がするし、ブラウザから直接上記のURIを投
げてもいいのかもしれない。だが、以下のように生の
応答を1コマンドで
得られるところが、お手軽な生存
テストたる所以なのだろう。telnetを使うと2回コマン
ドを打たねばならないからだ。

HTTP/1.1 200 OK
Date: Sun, 11 Jul 2004 09:20:34 GMT
Server: Apache/2.0.50
Last-Modified: Sun, 11 Jul 2004 09:19:50 GMT
ETag: "75301-0-bd057980"
Accept-Ranges: bytes
Content-Length: 0
Connection: close
Content-Type: text/html (以下略)

しかしこのncコマンドはただコネクションを開いて繋ぐ
なり、listenするだけのコマンドなので、proxyを通さ
ないといけない場合は使えないという欠点もある。その
場合はおとなしくwgetすることになるのだろう。この場
合はhttp_proxy環境変数を定義するか、~/.wgetrcに書い
ておく必要がある。
 
wget --proxy-user=mumumu --proxy-passwd=xxxxxx http
://xxx.xxx.xxx.xx.jp/

まあこうするくらいなら、おとなしくブラウザでアクセス
した方が早かろうて、、(´ー`;) wgetのマニュアル
参照のこと。

----

また、ncコマンドはBSD由来のものであり、デフォルト
ではfedoraやRedHatにはインストールされない。よって、
「yum install nc」とする必要があることにも注意すべ
きだろう。

[ Update July 12th 0:45 JST by m ]

やまきゅさめからbash限定ながら、以下のexpressionを教わり
ました。

(echo GET / HTTP/1.1; echo Host: slashdot.jp; echo ; cat <&1 >&2) >/dev/tcp/srad.jp/80

これはbashの「/dev/tcp/host/port」というステートメントが
hostのport番号に対する接続を行うことを利用したもの。ひとつ
ひとつ解釈すると、、

Get / HTTP/1.1
Host: slashdot.jp
(空行)

を/dev/tcp/srad.jp/80というTCP接続に出力すると同時
に、標準エラー出力を参照していることになる。

#ファイルディスクリプタは未だに私にとって鬼門でありま
#っす(´ー`;)

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson

読み込み中...