防止socat窃取stdin

时间:2015-10-03 21:46:12

标签: linux bash stdin telnet socat

我使用socat进行快速telnet标记抓取,如下所示:

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

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

我指定的socat行是用于其他目的的脚本的一部分,因此如果可以在不诉诸masscan的情况下解决问题,那将会很好,{{1 }或nmap。谢谢。

1 个答案:

答案 0 :(得分:0)

必须有一种更好的方法来执行此操作,但到目前为止我还没有找到它。

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

为了解决这个问题,我做了

同时为true;睡觉10个;完成| socat -T 1-tcp:$ ip:23

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