Linux shell验证IP 端口是否通并获取验证结果(telnet nc ),linux获取telnet ip port的结果

原文
Linux shell 批量验证端口连通性

验证原理就是使用telnet和nc来进行验证,测试下来感觉nc比较好用。

nc -v -w 5 -z 192.168.1.114 2182 &> /dev/null
echo $?
输出结果 1表示不通,0表示通。

脚本

#!/bin/bash
LOCALIP=`ifconfig | grep inet | head -1 | awk '{print $2}' | sed 's/addr\://'`
IPLIST='192.168.161.234 192.168.161.235192.168.161.22 '
PORTLIST='1521 1522 1523 1524 1525 1526 1527 1528 1529 1530'
check_nc(){
for CHECK_IP in $IPLIST
do
    for CHECK_PORT in $PORTLIST
        do
            nc -nz -w 1 $CHECK_IP $CHECK_PORT
            if [ $? -eq 0 ];then
                echo "$LOCALIP result $CHECK_IP $CHECK_PORT Connected"
            else
                echo "$LOCALIP result $CHECK_IP $CHECK_PORT Noconnected"
            fi
        done
done
}
check_nc_7(){
for CHECK_IP in $IPLIST
do
    for CHECK_PORT in $PORTLIST
        do
            nc -n -w 1 $CHECK_IP $CHECK_PORT < /dev/null
            if [ $? -eq 0 ];then
                echo "$LOCALIP result $CHECK_IP $CHECK_PORT Connected"
            else
                echo "$LOCALIP result $CHECK_IP $CHECK_PORT Noconnected"
            fi
        done
done
}
check_telnet(){
for CHECK_IP in $IPLIST
do
    for CHECK_PORT in $PORTLIST
        do
            echo  -e  "\n"| telnet $CHECK_IP $CHECK_PORT | grep Connected
            if [ $? -eq 0 ];then
                echo "$LOCALIP result $CHECK_IP $CHECK_PORT Noconnected"
            else
                echo "$LOCALIP result $CHECK_IP $CHECK_PORT Connected"
            fi
        done
done
}
echo "--------------------------------------"
echo "execution time : `date`"
echo "--------------------------------------"
echo "Home ip : $LOCALIP"
echo "--------------------------------------"
which nc > /dev/null
if [ $? -eq 0 ];then
    echo "------------------nc------------------"
    echo "--------------------------------------"
    cat /etc/redhat-release |grep 'release 7' > /dev/null
    if [ $? -eq 0 ];then
        check_nc_7
    else
        check_nc
    fi
else
    which telnet > /dev/null
    if [ $? -eq 0 ];then
        echo "-----------------telnet----------------"
        check_telnet
    fi
fi
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值