有没有批量检测的方法?有的。咱们用nc就能够快速检测端口的开放性。dom
nc检测端口的用法tcp
nc -z -w 10 -u%IP% %PORT%ip
-z表示检测或者扫描端口
-w表示超时时间
-u表示使用UDP协议,此参数为空,则为tcp协议io
例如:udp
[@s136.ipcpu.com ~]# nc -z -w 10 -u 8.8.8.8 53 Connection to 8.8.8.8 53 port [udp/domain] succeeded! [@s136.ipcpu.com ~]# nc -z -w 10 8.8.8.8 53 Connection to 8.8.8.8 53 port [tcp/domain] succeeded! [@s136.ipcpu.com ~]# echo $? 0 [@s136.ipcpu.com ~]# nc -z -w 10 8.8.8.7 53 [@s136.ipcpu.com ~]# echo $? 1
端口成功联通返回值是0,提示succeeded;不然返回1,不提示任何数据方法
假如咱们有这样一堆IP和端口。cpu
#cat ports 119.181.69.96 8080 119.181.118.38 8000 119.181.20.18 8080 119.181.69.37 8080
咱们能够写这样一个脚原本批量检测端口是否开放:数据
cat tetsport | while read line do #nc -z -w 10 $line nc -z -w 10 $line > /dev/null 2>&1 if [ $? -eq 0 ] then echo $line:ok else echo $line:fail fi done
好了,咱们的运行结果以下:协议
119.181.69.96 8080:ok 119.181.118.38 8000:ok 119.181.20.18 8080:fail 119.181.69.37 8080:ok