linux,使用ping和fping找出网络上的活动主机

来源:互联网 发布:神知世界全文 编辑:程序博客网 时间:2024/06/05 04:37
linux,使用ping和fping找出网络上的活动主机

网络中有多个主机时,有时需要检查所有不活动的主机,或者活动的主机。这时候可以使用ping或者fping命令

1. ping命令

使用ping命令编写脚本,挨个检查
qingsong@db2a:/tmp$ cat ping.sh
#!/bin/bash

for i in 192.168.16.{1..255}
do
    ping $i -c 2 > /dev/null 2>&1
    [ $? -eq 0 ] && echo "$i is alive"
done

2. 并行ping

上面的命令需要执行很久,可以使用()括上需要执行的部分,最后加一个&符,这样for循环中执行的是多个后台进程,并行处理:
qingsong@db2a:/tmp$ cat ping2.sh
#!/bin/bash

for i in 192.168.16.{1..255}
do
    (
        ping $i -c 2 > /dev/null 2>&1
        [ $? -eq 0 ] && echo "$i is alive"
    )&
done

3. fping

fping需要单独安装,它能ping一组地址, -g指定一组地址,比如

  fping -g 192.168.16.1 192.168.16.200

表示这两个地址之间所有的地址。


-a选项表明打印出alive的主机
qingsong@db2a:/tmp$ fping -a -g 192.168.16.0/24 2> /dev/null
192.168.16.1
192.168.16.2
192.168.16.128
192.168.16.129

-u选项打印出unreachable的主机
qingsong@db2a:/tmp$ fping -u -g 192.168.16.0/24 2> /dev/null
192.168.16.3
192.168.16.4
192.168.16.5
...<略>...
192.168.16.254

另外fping的 -f选项支持从文件中读取IP列表