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

Can I send a message to multiple hosts in one command using nc (netcat)?

是否可以在一次 netcat 调用中完成?

这个有效:

nc WHKWDCTGABUZUN1 12345 -w 5

如何进行这项工作?

nc WHKWDCTGABUZUN1,WHKWDCTGABUZUN2,WHKWDCTGABUZUN3 12345 -w 5

据我所知,nc不能直接为所欲为。但是,正如手册页所说,nc 在脚本中运行良好,因此您可以执行以下操作:

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

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

如果这对您不起作用,请查看 nc 的一个或多个增强版本,包括 ncat and socat,两者都适用于 Linux .我也不确定他们能不能做你想做的事,但更有可能。

您实际上不能像您要求的那样在一行中做到这一点。然而,这样的事情可能会奏效:

printf "WHKWDCTGABUZUN1\nWHKWDCTGABUZUN2\nWHKWDCTGABUZUN3\n" |
while read address; do 
    nc "$address" 80 -w 5 <<< GET;
done