0

この回答に基づいて、telnetを終了する方法を見つけようとしていますが、0が返されます

これらは機能しません:

(echo -e "repl.quit()";sleep 1) |telnet localhost 4242;echo $?
(echo -e "\029";sleep 1;echo "q";sleep 1) |telnet localhost 4242;echo $?
(echo -e "\c]";sleep 1;echo "q";sleep 1) |telnet localhost 4242;echo $?
(echo -e "\e]";sleep 1;echo "q";sleep 1) |telnet localhost 4242;echo $?
(echo -e "\E]";sleep 1;echo "q";sleep 1) |telnet localhost 4242;echo $?

問題は、終了の成功と失敗を区別できないことです...

この質問はリンクできると思います。

4

1 に答える 1

3

^]パイプ経由で指定したすべてのコマンドを実行した後、telnet クライアントが接続を終了する前に、印刷できないグループ区切り文字である文字を送信する必要があります。ほとんどのバージョンのechoプログラムは、オプションを使用して印刷できない文字を生成でき-eます。グループ セパレータは 8 進数で 035 です (*nix システムでは ASCII テーブル全体を見ることができますman 7 ascii)。したがって、コマンド全体は次のようになります。

$ (echo "content.location.href = 'http://v4.ident.me/'"; sleep 2; echo -e '\035'; sleep 2) | telnet localhost 4242 > /dev/null
$ echo $?
$ 0
于 2014-06-21T17:34:51.477 に答える