从文件中读取SERVER_IP之后使用telnet遍历指定端口,批量验证22端口是否开放。
我的ip.txt文件里面有2列,是IP和PORT的形式,所以使用管道符配合awk截取下第一列内容,要是纯IP列表不要后面也行。
#!/bin/bash
ser_ip_list=`cat ip.txt|awk '{print $1}'` # 指定ip列表
ser_port=22 # 指定端口
for ser_ip in $ser_ip_list #获得IP
do
echo "测试连接 $ser_ip 的 $ser_port 端口"
$rs=`(sleep 1)|telnet $ser_ip $ser_port | grep "]" | wc -l `
#统计]的个数,联通了只有他一个,返回1,用于判断
if [[ $rs -eq 0 ]];
then
echo "$ser_ip $ser_port 端口连接失败";echo "$ser_ip $ser_port 端口连接失败" >> result_telnet.txt
else
echo "$ser_ip $ser_port 端口连接成功";echo "$ser_ip $ser_port 端口连接成功" >> result_telnet.txt
fi
done
补充:
ping 使用 icmp 协议
tracert 默认使用 icmp 协议,可以参数指定其他协议如【-T】使用tcp协议
telnet 默认是用 tcp 协议