端口检测

端口检测

 1 #!/bin/bash
 2 
 3 #list="10.68.133.104 10.68.133.105 10.68.133.106 10.68.133.107 10.68.133.108 10.68.133.109 10.68.133.110 10.68.133.111 10.68.133.112 10.68.133.113 10.68.133.114"
 4 #list="10.31.126.37"
 5 ports="22"
 6 j="22"
 7 #ports="6379 6378"
 8 for i in `cat hosts_titan600`
 9 do
10  # for j in $ports
11  # do
12    # echo $i $j is apoint
13    # ssh -v -p $j  $i|grep "established"
14     nc $i  $j </dev/null 2>/dev/null
15    if [ $? -eq 0 ];then
16      echo $i $j connect success
17    else
18      echo $i $j connect failure
19    fi
20  # done
21 done

# 备注: nc对于部分端口测试存在问题。今天10.31.x.x 5672没有通过,但是ssh通过了。特地搜索ssh打印debug信息方式

function portCheck(){
num=`ssh -o ConnectTimeout=1 -v -p $2 $1 2>&1 |grep "established."|wc -l`
if [ $num -eq 1 ];then
return 0
else
#return 返回的是状态码,函数结束 return不返回函数返回值 可以在前面用 echo 返回函数返回值(返回值给以给变量),
#return 返回指定函数退出状态码(状态码仅提示命令状态)
#echo 返回的是函数返回值,函数退出状态码是函数最后一条命令的退出状态码
return 1
fi
}
#portCheck $1 $2
#if [ $? -eq 0 ];then
# echo $1 port is successful
#fi


function takeIpPort(){
OLDIFS=$IFS
IFS=$'\n'
for i in `cat ipInfo.txt`
do
OLDIFS1=$IFS
IFS=$OLDIFS
iplists=`echo $i|awk '{print $1}'|sed s/,/\ /g`
ipport=`echo $i|awk '{print $2}'|sed s/,/\ /g`
for j in `echo $iplists`
do
for k in `echo $ipport`
do
portCheck $j $k
if [ $? -eq 0 ];then
echo $j $k sucessful
else
echo $j $k fail
# exit
fi
done
done
IFS=$OLDIFS1
done
IFS=$OLDIFS


}
takeIpPort


exit

 
posted @ 2019-12-13 17:34  klandehu  阅读(189)  评论(0)    收藏  举报