shell 检测网段在线主机

写一个shell脚本:
实现ping C类网段,B类网段和A类网段内的所有主机;
网段地址让用户输入,而且通过脚本判断网段类型;

#!/bin/bash  

#Author: MOS  

#Script name: funPing.sh  

#Date & Time: 2012-10-09/21:53:09  

#Version: 1.0.1  

#Description:  

#  

#定义C类网段处理函数  

net_C(){  

#定义统计不在线IP数量的变量  

    declare -i Fail=0  

#生成C类网的最后位IP,循环ping  

    for i in `seq 1 254`;do  

#ping只发送一个,只等待1秒,得到的所有信息并扔掉,仅去逻辑值  

        if ping -c 1 -W 1 $1.$i &> /dev/null ;then   

            echo "Online $1.$i" 

        else 

            let Fail++  

        fi  

    done  

    echo "No Online PC, Number is $Fail" 

}  

net_B(){  

#截取B类网的网段  

    Bip=`echo $1|cut -d'.' -f1-2`  

    declare -i Fail=0  

#循环生成B类网第三段  

    for i in `seq 0 254`;do  

        Res="$Bip.$i" 

#循环生成B类网第四段  

        for r in `seq 1 254`;do  

            if ping -c 1 -W 1 $Res.$r &> /dev/null ;then     

                echo "Online $Res.$r" 

            else 

                let Fail++  

            fi  

        done  

    done  

    echo "No Online PC, Number is $Fail" 

}  

net_A(){  

    Bip=`echo $1|cut -d'.' -f1`  

    declare -i Fail=0  

#生成A类网的第二段,第三段和第四段以此类推  

    for i in `seq 0 254`;do  

        Res="$Bip.$i" 

        for r in `seq 0 254`;do  

            Res1="$Res.$r" 

            for l in `seq 1 254`;do  

                if ping -c 1 -W 1 $Res1.$l &> /dev/null ;then     

                    echo "Online $Res1.$l" 

                else 

                    let Fail++  

                fi  

            done  

        done  

    done  

    echo "No Online PC, Number is $Fail" 

}  

read -p "Please input subset:" Ip  

#判断输入IP段落是否合法  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/5ef61928bd18dc0ec9d663ee69a67ab5.html