我不明白为什么这段代码没有向netcat发送正确的信息。
不确定如何尝试
#!/bin/bash
for i in {0000..9999}
do
echo UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ $i | nc localhost 30002
done
目标是通过netcat向本地主机上的端口30002发送一个哈希密码和一个4位数的密码。收到正确的密码/密码组合后,Netcat将返回目标密码。
答案 0 :(得分:1)
您的shebang建议您使用的外壳不支持括号扩展。如果您打算使用特定于#!/bin/bash
的功能,请使用bash
(或任何正确的路径)。每次更新时,听起来好像您使用的是bash
的较旧版本,不会将括号扩展的结果归零。
括号扩展通常用于交互使用,以减少按键。在脚本中,可以使用
for ((i=0; i< 10000; i++)); do
printf 'UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ %04d\n' | nc localhost 30002
done
或与POSIX兼容的while循环。
i=0
while [ "$i" -lt 10000 ]; do
printf 'UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ %04d\n' | nc localhost 30002
i=$((i+1))
done