简单的批量telnet 测试

因一些项目需要批量开通网络策略,需要逐个测试端口的导通性,参考网上其他人的文章,简单写了一个shell

 1 #!/bin/bash
 2 
 3 check_telnet(){
 4 LOCALIP=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)/(.*)/, "\1", "g", $2)}')
 5 
 6 for ip_port in $(cat ip_info|grep -v '^#')
 7 do
 8         CHECK_PORT=$(echo $ip_port|awk -F: '{print $2}')
 9         CHECK_IP=$(echo $ip_port|awk -F: '{print $1}')
10         echo -e "
"| (sleep 1;) | telnet $CHECK_IP $CHECK_PORT |grep "Connected to|Escape Character" >/dev/null
11         if [ $? -eq 0 ];then
12                 echo "$LOCALIP result $CHECK_IP $CHECK_PORT Connected"
13         else
14                 echo "$LOCALIP result $CHECK_IP $CHECK_PORT can not Connected"
15         fi
16 done
17 }
18 
19 check_telnet >result.log

上述代码读取文件 ip_info,这个文件如下

1 #请使用ip:port的格式编辑
2 220.181.38.150:443
3 180.97.33.107:443
4 #如是一个列表,可使用#注释不测试的ip
5 #180.97.34.96:80
6 #可使用域名:port
7 www.baidu.com:80
8 www.baidu.com:443

ip_info 与shell文件需要在同一路径下,执行后产生的文件是result.log

原文地址:https://www.cnblogs.com/micronm/p/15267871.html