写一个脚本,实现判断192.168.3.0/24网络里,当前在线的IP有哪些。

条件如下:

1、通过ping命令测试192.168.3.1到192.168.3.5之间的所有主机是否在线,

   如果在线,就显示"ip is up.",其中的IP要换为真正的IP地址,且以绿色显示;

   如果不在线,就显示"ip is down.",其中的IP要换为真正的IP地址,且以红色显示;

要求:分别使用while,until和for(两种形式)循环实现。

方法一:用while实现。

#!/bin/bash
IP=1
while [ $IP -le 5 ]; do
    ping -c 2 -w 2 192.168.3.$IP &>/dev/null
    STRING=$?
#    if ping -w 2 -c 2 192.168.3.$IP &>/dev/null;then
     if [ $STRING -eq 0 ];then
       echo -e "\033[32;40m192.168.3.$IP is up.\033[0m"
    else
       echo -e "\033[31;40m192.168.3.$IP is down.\033[0m"
    fi
    let IP=$IP+1
done

或者:

#!/bin/bash
#
while true; do
  for I in {1..5};do
    ping -c 2 -w 2 192.168.3.$I &>/dev/null
    if [ $? -eq 0 ]; then
      echo -e "\033[32;40m 192.168.3.$I is UP.\033[0m"
    else
      echo -e "\033[31;40m 192.168.3.$I is Down.\033[0m"
    fi
  done
    break
done

方法二:用until实现

#!/bin/bash
IP=1
until [ $IP -gt 5 ]; do
    ping -c 2 -w 2 192.168.3.$IP &>/dev/null
    STRING=$?
#    if ping -w 2 -c 2 192.168.3.$IP &>/dev/null;then
     if [ $STRING -eq 0 ];then
       echo -e "\033[32;40m192.168.3.$IP is up.\033[0m"
    else
       echo -e "\033[31;40m192.168.3.$IP is down.\033[0m"
    fi
    let IP=$IP+1
done

或者:

#!/bin/bash
#
until false; do
  for I in {1..5};do
    ping -c 2 -w 2 192.168.3.$I &>/dev/null
    if [ $? -eq 0 ]; then
      echo -e "\033[32;40m 192.168.3.$I is UP.\033[0m"
    else
      echo -e "\033[31;40m 192.168.3.$I is Down.\033[0m"
    fi
  done
    break
done

方法三:用for实现

#!/bin/bash
#
for I in `seq 151 254`; do
  ping -c 2 -w 2 "192.168.0.$I" &>/dev/null
  if [ $? -eq 0 ];then
     echo -e "\033[32;40m192.168.0.$I is up\033[0m"
  else
    echo -e "\033[31;40m192.168.0.$I is down\033[0m"
  fi
done

或者:

#!/bin/bash
for ((I=1;I<=5;I++ ));do
    ping -c 2 -w 2 192.168.3.$I &>/dev/null
    if [ $? -eq 0 ];then
       echo -e "\033[32;40m192.168.3.$Iis up.\033[0m"
    else
       echo -e "\033[31;40m192.168.3.$Iis down.\033[0m"
    fi
done
时间: 2024-10-09 03:52:57

写一个脚本,实现判断192.168.3.0/24网络里,当前在线的IP有哪些。的相关文章

写一个脚本,实现判断10.0.0.0/24网络里,当前在线用户的IP有哪些

#!/bin/bash #检测一个c的ip中当前有哪些IP在线 for i in `seq 1 254`;do #{} 开启并发,开启多线程 { IP=10.0.0.$i ping -c1 -w 1 $IP >/dev/null #判断ip是否在线,把在线的ip输出到指定文本并显示到屏幕 if [ $? -eq 0 ];then echo "Host $IP is ok" echo $IP >>/tmp/ip.txt fi # &把命令放入后台 } &

一个C类地址192.168.1.0划分5个子网,每个子网至少要容纳30台主机,如何规划?

C类地址要划分5个子网,因2^2<5<2^3,故子网掩码为24+3=27位:主机地址位是5位,每个子网可容纳最大主机数量为2^5-2=30:子网规划如下(可划分为8个子网,依题只用5个即可):192.168.1.0/27:子网地址192.168.1.0,广播地址192.168.1.31,可用地址范围为192.168.1.1~192.168.1.30:192.168.1.32/27:子网地址192.168.1.32,广播地址192.168.1.63,可用地址范围为192.168.1.33~192

写一个脚本,判断下如果是阴历7月7日,在服务器上广播“七夕情人节快乐!”

#!/bin/bash d=`date +%F`if [ "$d" == "2016-08-09" ]then wall '七夕情人节快乐!'fi

python 学习笔记 12 -- 写一个脚本获取城市天气信息

最近在玩树莓派,前面写过一篇在树莓派上使用1602液晶显示屏,那么能够显示后最重要的就是显示什么的问题了.最容易想到的就是显示时间啊,CPU利用率啊,IP地址之类的.那么我觉得呢,如果能够显示当前时间.温度也是甚好的,作为一个桌面小时钟还是很精致的. 1. 目前有哪些工具 目前比较好用的应该是 weather-util, 之前我获取天气信息一般都是通过它. 使用起来也很简单: (1) Debian/Ubuntu 用户使用 sudo apt-get install weather-util 安装

16.03.18 【练习】case的用法 写一个脚本

写一个脚本,可以结合艘选项及参数,而后能获取每一个选项,及选项的参数,并能根据选项及参数做出特定的操作,比如:adminusers.sh --add tom,blair --del tom,blair -v|--verbose -h|--help #!/bin/bash # DEBUG=0 ADD=0 DEL=0 for i in `seq 0 $#`; do if [ $# -gt 0 ]; then case $1 in -v|--verbose) DEBUG=1 shift ;; -h|-

写一个脚本,输出长/正方形图形

写一个脚本,输出长/方图形图形. #!/bin/bash read -p " Please Enter a number: " Line for ((i=1;i<=$Line;i++)) do for((m=1;m<=$Line;m++)) do echo -n "■ " done echo done

老男孩教育每日一题-2017-04-17:使用Shell或Python写一个脚本,CPU使用率超过80%或硬盘超过85%邮件报警

老男孩教育每日一题-2017-04-17: 使用Shell或Python写一个脚本,CPU使用率超过80%或硬盘超过85%邮件报警. 今天是老男孩教育每日一题陪伴大家的第29天.

python写一个脚本解析文件

Python写一个脚本解析文件 ----基于Red Hat Enterprise Linux Server release 6.4 (Santiago):python 2.6.6 需求: 1.去掉空行 2.去掉空行后输出到一个新文件 附加需求(排版):1.'-'缩进n个字符 '-'缩进2n个字符 以此类推 2.'-'开头的所有句子输出在一行 '-'开头的句子输出在一行 以此类推 --------------------------------------------分隔线------------

shell练习:写一个脚本实现如下功能:输入一个数字,然后运行对应的一个命令。显示命令如下:*cmd

shell练习:写一个脚本实现如下功能:输入一个数字,然后运行对应的一个命令.显示命令如下:*cmd meau** 1--date 2--ls 3--who 4--pwd  当输入1时,会运行date命令,输入2时会运行ls,以此论推 答案: #! /bin/bash read -p "*cmd meau** 1--date 2--ls 3--who 4--pwd:" a if (($a==1));then date elif (($a==2));then ls elif (($a==