shell脚本批量测试TCP/UDP端口,通过telnet或者nc命令测试

tcp端口测试用telnet

#!/bin/bash

for line in `cat iplist.txt | grep -v ^# |grep -v ^$`
do  
    ip=`echo $line | awk 'BEGIN{FS="|"} {print $1}'`
    port=`echo $line | awk 'BEGIN{FS="|"} {print $2}'`
    echo "(sleep 1;) | telnet $ip $port"
    (sleep 1;) | telnet $ip $port > telnet_result.txt
    result=`cat telnet_result.txt | grep -B 1 \] | grep [0-9] | awk '{print $3}' | cut -d '.' -f 1,2,3,4`
    echo "$result"
    if [ -n "$result" ]; then
        echo "$result | $port" >> telnet_alive.txt
    else
        echo "*********************************************************************************************** $ip $port not pass"
     fi
done
cat iplist.txt telnet_alive.txt |sort|uniq -u| grep -v ^# > telnet_died.txt
echo "telnet is over"

udp端口测试用nc -vuz

#!/bin/bash

for line in `cat iplist.txt | grep -v ^# |grep -v ^$`
do  
    ip=`echo $line | awk 'BEGIN{FS="|"} {print $1}'`
    port=`echo $line | awk 'BEGIN{FS="|"} {print $2}'`
    echo "(sleep 1;) | nc -vuz $ip $port"
    (sleep 1;) | nc -vuz $ip $port > telnet_result.txt
done
echo "telnet is over"

这里的iplist.txt是在同级目录下面创建一个txt,内容如下,这里需要添加两个 |  ,因为windows的txt内的文字复制到linux环境下面,如果只用一个 | ,端口号获取有问题,用两个就没这问题。

10.0.0.1|8080|
192.168.1.1|8080|
10.0.0.0|6379|

打赏二维码,多谢支持

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值