我可以使用nc(netcat)在一个命令中向多个主机发送消息吗?

问题描述 投票:0回答:2

是否可以在一次netcat调用中执行此操作?

这有效:

nc WHKWDCTGABUZUN1 12345 -w 5

我该如何工作?

nc WHKWDCTGABUZUN1,WHKWDCTGABUZUN2,WHKWDCTGABUZUN3 12345 -w 5
linux shell netcat
2个回答
2
投票

据我所知,nc不能直接做你想要的。但是,正如手册中所说,nc在脚本中运行良好,所以你可以这样做:

#!/bin/bash
ADDRESSES=("WHKWDCTGABUZUN1" "WHKWDCTGABUZUN2" "WHKWDCTGABUZUN3")
for ADDR in ${ADDRESSES[@]}
do
    nc "$ADDR" 12345 -w 5
done

您可以将其包装到shell脚本中,该脚本将您在stdin上传递的任何内容发送到每个主机。

如果这对您不起作用,请查看一个或多个增强版nc,包括ncatsocat,这两个版本都可用于Linux。我不确定他们能做到你想要的,但更有可能。


1
投票

你实际上不能用一条线来做这件事。但是,这样的事情可能有效:

printf "WHKWDCTGABUZUN1\nWHKWDCTGABUZUN2\nWHKWDCTGABUZUN3\n" |
while read address; do 
    nc "$address" 80 -w 5 <<< GET;
done
© www.soinside.com 2019 - 2024. All rights reserved.