入るときにnetcat [ip address] [port]
パスワードをくれと言うのですが、実際にパスワードを知っていますが、日付です。
しかし、netcat IPとポート番号を入力してから日付リストを繰り返すスクリプトを作成したいと思います。正しいパスワードを含む大規模な日付のリストを作成しましたが、目的のタスクを実行するスクリプトを作成する方法がわかりません。パスワード(日付)はddmmyyyy形式です。助けてくれて本当にありがとうございます!
私がしたいことが何であるかを知るために...
1) Script automatically enters: netcat [ip address] [port]
2) Script automatically enters: 01012000
3) Script automatically enters: netcat [ip address] [port]
4) Script automatically enters: 02012000
..................
500) Script automatically enters: netcat [ip address] [port]
501) Script automatically enters: 10082001 (CORRECT PASSWORD) Script end
*パスワードが正しい場合はスクリプトを終了する必要はありません。これは良いですが、必須ではありません。私はこの概念を最初に実装しようとしています。
ベストアンサー1
中かっこ拡張を使用して連続日付を作成し、入力をnetcatにパイプすることができます。
#!/bin/bash
for date in 2021-01-{01..31}; do
echo $date | netcat somehost ...
done
またはもう少し複雑ですfor date in 2021-{01-{01..31},02-{01..02}}; do ...
。
またはファイルから読み込みますwhile read -r date; do ...; done < dates.txt
。
特に、リモートデバイスがユーザーが提供したコマンドで接続を閉じない場合は、netcatをタイムリーに終了する方法を確認したい場合があります。 netcatにはいくつかのバージョンがあります。私のバージョンには次のオプションがあります。
-q seconds
stdinでEOF後、指定された時間(秒)を待って終了します。