• Linux Shell列出网络中所有的活跃主机


    因为的的网段是 192.168.1.0/24 ,
    所以我只需遍历 192.168.1.1 到 192.168.1.255 之间的所有ip然后进行 ping 就可以了:

    test.sh:

    #!/bin/bash
    for ip in 192.168.1.{1..255} ;
    do 
        ping $ip -c 2 &> /dev/null ;
        
        if [ $? -eq 0 ];
        then 
            echo $ip is alive
        fi
    done
    

    结果如下:

    zifeiy@zifeiy-S1:~/文档$ bash test.sh 
    192.168.1.1 is alive
    192.168.1.3 is alive
    192.168.1.4 is alive
    192.168.1.6 is alive
    

    也可以修改成并行ping的:
    test.sh:

    #!/bin/bash
    for ip in 192.168.1.{1..255} ;
    do (
            ping $ip -c 2 &> /dev/null ;
            
            if [ $? -eq 0 ];
            then 
                echo $ip is alive
            fi
        )
        done
    wait
    

    在 for 循环中执行了多个后台进程,然后结束循环并终止脚本。
    wait命令hau等待所有的子进程结束后再终止脚本。

    也可以使用 fpingsudo apt-get install fping),他的速度更快,用法如下:

    fping -a 192.168.1/24 -g
    

    fping -a 192.168.1.1 192.168.1.255 -g
    

    (fping的用法暂时没有搞懂~)

  • 相关阅读:
    HDU1106 排序
    HDU2050 折线分割平面
    HDU2048 神、上帝以及老天爷
    POJ1836 Alignment
    POJ1182 食物链
    HDU2067 小兔的棋盘
    HTML中的ID不能以数字开头
    automake,autoconf使用详解
    How to install Samba server on Ubuntu 12.04
    Netbeans使用UTF-8编码
  • 原文地址:https://www.cnblogs.com/zifeiy/p/9434119.html
Copyright © 2020-2023  润新知