IP のグループに ping を実行し、オンラインのみを返すスクリプトですか?

IP のグループに ping を実行し、オンラインのみを返すスクリプトですか?

IPのグループにpingを実行し、結果としてオンラインのものを返すスクリプトが必要です。たとえば、エコーします。 10.10.10.10 はオンラインです

10.10.10.11 はオンラインです

10.10.10.15 がオンラインです

パッケージやサードパーティのユーティリティを使用せずに!

何か助けが必要ですか?

答え1

スクリプトは必要ありません。ナンマップnmapをインストールするあなたのためにそれをすることができます。

たとえば、10.10.10.0/24ネットワークをスキャンするには、次のようにします。

nmap -sn 10.10.10.0/24

これは、「ping」と呼ばれる ICMP エコー要求への応答に基づいて、稼働中のホストを報告します。出力例:

Starting Nmap 5.21 ( http://nmap.org ) at 2014-01-30 00:40 CET
Nmap scan report for 10.10.10.1
Host is up (0.0061s latency).
Nmap scan report for 10.10.10.2
Host is up (0.00071s latency).
Nmap scan report for android (10.10.10.112)
Host is up (0.0087s latency).
Nmap scan report for laptop (10.10.10.134)
Host is up (0.00037s latency).
Nmap scan report for 10.10.10.151
Host is up (0.00094s latency).
Nmap scan report for 10.10.10.203
Host is up (0.00060s latency).
Nmap done: 256 IP addresses (6 hosts up) scanned in 3.41 seconds

答え2

以下のスクリプトはサブネット IP をループし、結果としてオンラインのみを返します。

#!/bin/bash

is_alive_ping()
{
  ping -c 1 $1 > /dev/null
  [ $? -eq 0 ] && echo Node with IP: $i is Online.
}

for i in 10.1.1.{1..255} 
do
is_alive_ping $i & disown
done

10.1.1をサブネットに変更することに注意してください。1..255はスクリプトに10.1.1.1から開始し、10.1.1.255をループするように指示します。

実行する:

./ping_scan.sh

関連情報