質問があります。 Telnetを使用してウェブサイトのタイトルを取得できますか?ウェブサイトは次のとおりですdomain.name.server.com/~USER
(単純な例)。 Telnet経由でヘッダーを取得したいです。
telnet domain.name.server.com/~USER 80
<--動作しません
telnet domain.name.server.com 80
うまくいきますが、~userをインポートする必要があります。これは可能ですか?
答え1
telnet domain.name.server.com 80
その後、使用
HEAD /~USER HTTP/1.1
Host: domain.name.server.com
(それからもう一度打たなければなりませんEnter。)
これでページタイトルが表示されます。
実際の例は次のとおりです。
$ telnet unix.stackexchange.com 80
Trying 198.252.206.16...
Connected to unix.stackexchange.com.
Escape character is '^]'.
HEAD /questions/237635/using-telnet-to-get-website-header HTTP/1.1
Host: unix.stackexchange.com
HTTP/1.1 200 OK
Cache-Control: public, no-cache="Set-Cookie", max-age=60
Content-Length: 70679
Content-Type: text/html; charset=utf-8
Expires: Wed, 21 Oct 2015 19:27:43 GMT
Last-Modified: Wed, 21 Oct 2015 19:26:43 GMT
Vary: *
X-Frame-Options: SAMEORIGIN
X-Request-Guid: dbf9d0f6-0ca4-423f-98f0-4cdf2bf51bf1
Set-Cookie: prov=08886524-c640-40ad-a0ee-246db3219228; domain=.stackexchange.com; expires=Fri, 01-Jan-2055 00:00:00 GMT; path=/; HttpOnly
Date: Wed, 21 Oct 2015 19:26:43 GMT
Connection closed by foreign host.
答え2
wget
Telnetの代わりに使用できる場合は、次の1つのコマンドですべてのヘッダーを取得できます。
wget -q -S -O - domain.name.server.com/~USER | : 2>&1
-q
一般ログメッセージングをオフにする-S
サーバーでヘッダーロギングをオンにする-O -
ダウンロードしたファイルの内容をSTDOUTに渡す| :
ダウンロードしたファイルの内容をランダムユーティリティにパイプします:
。これにより、ファイル全体がダウンロードされるのを効果的に防ぐことができ、ファイルが大きい場合に有利になります。2>&1
(オプション)記録されたヘッダーをSTDOUTにリダイレクトする
たとえば、
$ wget -q -S -O - unix.stackexchange.com/questions/237635/using-telnet-to-get-website-header | :
HTTP/1.1 200 OK
Cache-Control: public, no-cache="Set-Cookie", max-age=49
Content-Type: text/html; charset=utf-8
Expires: Wed, 21 Oct 2015 21:22:21 GMT
Last-Modified: Wed, 21 Oct 2015 21:21:21 GMT
Vary: *
X-Frame-Options: SAMEORIGIN
X-Request-Guid: 5ac03697-68fa-4be5-9f32-2905ec3eff38
Set-Cookie: prov=5d9866f4-9d98-4587-a7cc-f6ea5cd76075; domain=.stackexchange.com; expires=Fri, 01-Jan-2055 00:00:00 GMT; path=/; HttpOnly
Date: Wed, 21 Oct 2015 21:21:32 GMT
Content-Length: 76585
$
答え3
CurlはHTTPヘッダーを見るためのきちんとした方法でもあります。
curl -v http://unix.stackexchange.com/questions/237635/using-telnet-to-get-website-header
答え4
Telnetの代わりにopensslを使用してhttpsを介してこれを行うこともできます。例がありますこのチュートリアル私が最近投稿したもの:
openssl s_client -connect domain.name.server.com:443
HEAD /~USER HTTP/1.0
Host: domain.name.server