找到快速的方式,如果一个端口在所有本地网使用Linux开放(Quick way to find if

2019-10-28 16:49发布

从bash脚本我怎么能快速找到一个80端口是否打开/听的服务器上。

在打开守护进程,但有时它掉下去,我怎样才能从文件检查所有文件,如果端口是开放的所有工作站,我发现了一种使用

 nc -zw3 10.101.0.13 80 && echo "opened" || echo "closed"

但如何使用它散装从一个文件,我所著文件的样子:

10.101.0.13; 3333
10.101.0.15; 3334
10.101.0.17; 4143
10.101.0.21; 1445
10.101.0.27; 2443
10.101.0.31; 2445
10.101.0.47; 3443
10.101.0.61; 3445

我不得不分开的非工作的工作之一,但也与所有的线。 谢谢

Answer 1:

我不得不分开的非工作的工作之一,但也与所有的线。

你可以通过文件循环,并且状态写入相应的文本文件

sed 's/;/ /' file | while read ip other
do
        nc -zw3 $ip 80 && echo "$line" >> opened.txt || echo "$line" >> closed.txt
done

如果你想保留的IP; otherstuff IP; otherstuff格式,你可以用这个来代替一个

while read line
do
        ip=$(sed 's/;.*//' <<<"$line")
        nc -zw3 $ip 80 && echo "$line" >> opened.txt || echo "$line" >> closed.txt
done < file


Answer 2:

您可以使用此bash一个衬垫,

while IFS=";" read ip port; do nc -zw3 "$ip" "$port" && echo "$ip:$port => opened" || echo "$ip:$port =>  closed"; done<'ip_list_file.txt'

编辑:

尝试这个:

while IFS=";" read ip port; do nc -zw3 "${ip}" "${port}" && echo "${ip}:${port} => opened" || echo "${ip}:${port} =>  closed"; done<'ip_list'


文章来源: Quick way to find if a port is open in all Local Network using Linux