複数の機器に一斉にPingを送信する方法

はじめに

ある拠点でIPアドレスの生死を確認するためにPingを利用することにしました。バッチファイルを利用すれば数百台の機器があっても順番にPingの応答有無を確認できますが、かなり時間がかかります。

Linuxだとfpingという便利なツールがあります。fpingはpingと異なり複数のホストや範囲を指定することができます。そのため複数のホストに対して一斉にpingコマンドを実行したいといった用途で利用することができます。

fpingの使い方

ヘルプ

管理人がよく使用するオプションは-s(結果を表示する)、-g(範囲を指定する)-r(再試行回数)、-f(ファイルを指定)です。

# fping -h

Usage: fping [options] [targets...]
   -a         show targets that are alive
   -A         show targets by address
   -b n       amount of ping data to send, in bytes (default 56)
   -B f       set exponential backoff factor to f
   -c n       count of pings to send to each target (default 1)
   -C n       same as -c, report results in verbose format
   -D         print timestamp before each output line
   -e         show elapsed time on return packets
   -f file    read list of targets from a file ( - means stdin) (only if no -g specified)
   -g         generate target list (only if no -f specified)
                (specify the start and end IP in the target list, or supply a IP netmask)
                (ex. fping -g 192.168.1.0 192.168.1.255 or fping -g 192.168.1.0/24)
   -H n       Set the IP TTL value (Time To Live hops)
   -i n       interval between sending ping packets (in millisec) (default 25)
   -I if      bind to a particular interface
   -l         loop sending pings forever
   -m         ping multiple interfaces on target host
   -n         show targets by name (-d is equivalent)
   -O n       set the type of service (tos) flag on the ICMP packets
   -p n       interval between ping packets to one target (in millisec)
                (in looping and counting modes, default 1000)
   -q         quiet (don't show per-target/per-ping results)
   -Q n       same as -q, but show summary every n seconds
   -r n       number of retries (default 3)
   -s         print final stats
   -S addr    set source address
   -t n       individual target initial timeout (in millisec) (default 500)
   -T n       ignored (for compatibility with fping 2.4)
   -u         show targets that are unreachable
   -v         show version
   targets    list of targets to check (if no -f specified)

複数のIPアドレスを指定して実行

fping IPアドレス IPアドレス IPアドレス ・・・

# fping 192.168.1.101 192.168.1.102
192.168.1.101 is alive
192.168.1.102 is alive

IPアドレスの範囲を指定して実行

fping -s -g 開始IPアドレス 終了IPアドレス

# fping -s -g 192.168.1.0 192.168.1.255
192.168.1.1 is alive
192.168.1.2 is unreachable
192.168.1.3 is alive
192.168.1.4 is alive
192.168.1.5 is alive
・・・
192.168.1.255 is unreachable

     256 targets
     143 alive
     113 unreachable
       0 unknown addresses

     113 timeouts (waiting for response)
     595 ICMP Echos sent
     143 ICMP Echo Replies received
     336 other ICMP received

 0.11 ms (min round trip time)
 1.51 ms (avg round trip time)
 17.9 ms (max round trip time)
       16.646 sec (elapsed real time)

CIDR表記で実行

# fping -s -g -r 1 192.168.1.0/24
192.168.1.1 is alive
192.168.1.2 is unreachable
192.168.1.3 is alive
192.168.1.4 is alive
192.168.1.5 is alive
・・・
192.168.1.253 is unreachable

     254 targets
     143 alive
     111 unreachable
       0 unknown addresses

     111 timeouts (waiting for response)
     365 ICMP Echos sent
     143 ICMP Echo Replies received
     119 other ICMP received

 0.04 ms (min round trip time)
 1.39 ms (avg round trip time)
 9.47 ms (max round trip time)
        9.917 sec (elapsed real time)

ファイルに記載されたアドレス一覧に対して実行

# cat iplist
192.168.1.101
192.168.1.102

# fping -f iplist
192.168.1.101 is alive
192.168.1.102 is alive
タイトルとURLをコピーしました