因一些项目需要批量开通网络策略,需要逐个测试端口的导通性,参考网上其他人的文章,简单写了一个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 "\n"| (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