ホストがそのアドレスで「アクティブ」であることを確認するには、一連のIPアドレスを確認するbashシェルスクリプトを作成する必要があります。また、これらの「アクティブ」IP番号をリストし、「アクティブ」および「非アクティブ」IPアドレスの数を示す要約を提供する必要があります。アドレス範囲はすべて「クラスC」ネットワークにあります。各パラメータを渡し、範囲内の個々のアドレスをpingする方法を特定するのに問題があります。
以下は、私が作成したいスクリプトのサンプル実行です。
$ programName 192.168.42 18 22
Checking: 192.168.42.18 19 20 21 22
Live hosts:
192.168.42.21
192.168.42.22
There were:
2 alive hosts
3 not alive hosts
found through the use of 'ping'.
答え1
今始める必要があります。
#!/bin/bash
for i in `seq ${2} ${3}`
do
ping -c 1 ${1}.${i} > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo "${1}.${i} responded."
else
echo "${1}.${i} did not respond."
fi
done
出力例:
xxxx@xxxxxx:~$ bash test.sh 10.140.0 100 103
10.140.0.100 responded.
10.140.0.101 did not respond.
10.140.0.102 did not respond.
10.140.0.103 did not respond.
これバッシュマニュアルたぶん必要なものを処理することもできます。
答え2
使用地図。これは仕事のための標準的なツールです。
どのホストがオンラインであるか(そして応答するか)知りたい場合は、「ping scan」を実行してくださいnmap -sP
。
出力形式を気にしない場合は、スクリプトを次のように書くことができます。
#!/bin/sh
nmap -sP "$1.$2-$3"