Windowsのコマンドプロンプトからのtelnetの使い方、というようりローカルエコーの設定がわからなくなったので、メモ。Linuxのターミナルからだと以下のように普通にtelnetで接続できる
$ telnet 192.168.0.1 80
Trying 192.168.0.10...
Connected to 192.168.0.1.
Escape character is '^]'.
HEAD / HTTP/1.0 ←コレは自分でタイプする
HTTP/1.1 200 OK
Date: Tue, 21 Dec 2004 06:59:52 GMT
Server: Apache/2.0.51 (Fedora)
Last-Modified: Mon, 25 Oct 2004 06:55:41 GMT
ETag: "104228-80-14adf540"
Accept-Ranges: bytes
Content-Length: 128
Connection: close
Content-Type: text/html
Connection closed by foreign host.
がWindows2000だと
C:\Documents and Settings\hoge>telnet 192.168.0.2 80
としても、画面が変わって
とタイプしても何も表示されない。あぁ、ローカルエコーがきちんと設定されていないからだ。Windowsのコマンドプロンプトのローカルエコーってどうやって設定するんだっけ? と検索してみると setコマンドでできると判明
Microsoft (R) Windows 2000 (TM) Version 5.00 (Build 2195)
Microsoft Telnet クライアントへようこそ
Telnet Client Build 5.00.99206.1
エスケープ文字は 'CTRL+]' です
Microsoft Telnet> set ?
NTLM NTLM 認証を使用します。
LOCAL_ECHO ローカル エコーを使用します。
TERM x (x には ANSI、VT100、VT52 または VTNT が入ります)
CODESET x (x には Shift JIS,
Japanese EUC,
JIS Kanji,
JIS Kanji(78),
DEC Kanji または
NEC Kanji がはいります)
CRLF CR と LF の両方を送信します。
Microsoft Telnet> set local_echo
とりあえず「set ?」でヘルプを見て、「set local_echo」で設定完了(オフにするときは「unset local_echo」)。XPだと「set localecho」のようだ。
C:\Documents and Settings\hoge>telnet 192.168.0.2 80
とタイプしてみると・・・
HEAD / HTTP/1.0 ←コレは自分でタイプする
HTTP/1.1 200 OK
Date: Tue, 21 Dec 2004 07:14:15 GMT
Server: Apache/1.3.31 (Win32) PHP/4.3.9
Content-Location: index.html.en
Vary: negotiate,accept-language,accept-charset
TCN: choice
Last-Modified: Thu, 03 May 2001 08:00:38 GMT
ETag: "0-5d6-3af11026;4176303a"
Accept-Ranges: bytes
Content-Length: 1494
Connection: close
Content-Type: text/html
Content-Language: en
Expires: Tue, 21 Dec 2004 07:14:15 GMT
ホストとの接続が切断されました
と無事に接続ができました。(違うサーバーに繋いだので結果が違っていますが)
※参考
・Telnetクライアントの使い方(@IT)
・これだけは知っておきたいネットワークコマンド