2

socat用于快速 telnet 横幅抓取,如下所示:

for ip in $list
do
    socat -T 1 - tcp:$ip:23 &
done

它遍历指定的 IP 地址列表,并在后台运行时,每调用socat一个连接TCP socket到端口 23 的stdin(-) 并在一秒钟后断开连接。问题是所有后台进程都使用相同的stdin,所以它们都会挂起。我尝试了readline选项,以及stdin用压制</dev/null,但没有结果。netcat,例如,行为方式相同,除非-d指定忽略输入。

我指定的socat行是用于其他目的的脚本的一部分,所以如果问题可以在不诉诸masscan,nmapnetcat. 谢谢你。

4

1 回答 1

0

必须有更好的方法来做到这一点,但到目前为止我还没有找到它。

echo -n 的问题 | 是当回声完成时,一个信号管道将被发送到 socat。

所以为了解决这个问题,我做到了

虽然是真的;睡觉 10 ; 完成 | socat -T 1 - tcp:$ip:23

这给出了一个管道并且没有结束。

于 2020-03-05T08:54:19.593 回答