shell 检测网段在线主机
2012-10-10 01:41
323 查看
作业四:
写一个脚本:
实现ping C类网段,B类网段和A类网段内的所有主机;
网段地址让用户输入,而且通过脚本判断网段类型;
如果要使用以上代码,要慎重...尤其是A类网和B类网...255*255*255的资源开销,您自己琢磨....呃,如果仅供测试的话,可以把结果输出到文件,放到后台执行,或者仅测试特定IP的话,您可以把for循环中seq的生成数字,修改一下,也是没问题的.....
写一个脚本:
实现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段落是否合法 if [[ $Ip =~ ^([2-9]|[1-9][0-9]|1[0-9][0-9]|2[01][0-9]|22[0-3])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])$ ]];then #合法,则取出第一个字段,属于哪类网 Mask=`echo "$Ip"|cut -d"." -f1` #如果是A类网,则调用net_A函数,依次类推 [ $Mask -lt 128 ] && net_A $Ip [ $Mask -lt 192 -a $Mask -gt 127 ] && net_B $Ip [ $Mask -gt 191 ] && net_C $Ip else #如果输入IP错误,则报错信息如下 echo "Error! $Ip invalid." fi
如果要使用以上代码,要慎重...尤其是A类网和B类网...255*255*255的资源开销,您自己琢磨....呃,如果仅供测试的话,可以把结果输出到文件,放到后台执行,或者仅测试特定IP的话,您可以把for循环中seq的生成数字,修改一下,也是没问题的.....
相关文章推荐
- python 多线程检测同网段主机在线状态
- 企业内部网段检测有多少主机存活——shell脚本
- 企业内部网段检测有多少主机存活——shell脚本传参(二)
- 检测局域网哪些主机在线....
- Shell扫描所在网段存活主机
- shell脚本实现批量测试局域网主机是否在线
- [shell]通过ping检测整个网段IP的网络状态脚本
- ping 一个网段主机的shell脚本
- 测试一个网段主机在线情况
- 检测一个网段多个主机网络是否正常(使用数组)
- 用shell脚本实现找出在某网段里面的所有在线用户
- 【shell】使用ping检测机器是否不在线
- shell脚本_查看网段中的存活主机和MAC地址
- 【shell脚本】检测局域网内存活主机
- 判断一个网段内,在线主机和不在线主机各多少台
- 检测网段IP使用情况的shell脚本
- 使用shell脚本检测lvs中realserver状态,并实现自动删除已挂机主机
- 检测主机是否在线小脚本
- shell脚本检测主机是否存活
- shell实现ping命令查看哪些主机在线