読者です 読者をやめる 読者になる 読者になる

破棄されたブログ

このブログは破棄されました。

Bash でワンライナーの telnet モドキを作る

bash ネットワーク

telnet がインストールされてなくても bash があれば行ける。

exec 3<>/dev/tcp/<hostname>/<port> && echo 'connected'; cat >&3 | cat <&3 ; echo 'connection closed.'; exec 3>&-

終えるときは Ctrl-C を押下する。 (cat に EOL を送る)

コネクションを切られても自動で死ねないのが残念なところです。やりようはあるかもしれないですが。

説明

# <hostname>:<port> への接続 (TCP) を開いて、 FD3 に Read/Write をリダイレクトする
exec 3<>/dev/tcp/<hostname>/<port> && \

# つながったよ
echo 'connected';

# 入力(標準入力, FD0)を FD3 に流しつつ、 受信したデータ (FD3) を標準出力 (FD1) に書き出す
cat >&3 | cat <&3 ;

# 終わりだよ
echo 'connection closed.';

# FD3 をリセット
exec 3>&-

風景

$ exec 3<>/dev/tcp/hirai.me/80 && echo 'connected'; cat >&3 | cat <&3 && echo 'connection closed.'; exec 3>&-
connected
GET / HTTP/1.1
Host: hirai.me

HTTP/1.1 200 OK
Content-Type: text/html
(中略)
</html>

telnet なり socat なりが入ってれば、そっちを使うに越したことはないです。

参考資料

広告を非表示にする