当我输入时,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 后,等待指定的秒数,然后退出。