nmap
私は現在オンラインでホストのリストを見つける方法を知っています。私が望むのはIPアドレスのリストを取得することですが、次の追加情報が表示されます。
Nmap scan report for 192.168.x.x' and 'Host is up (0.12s latency).
nmap
私が望むのは、コマンドを実行して現在のオンラインIPアドレスに関するテキスト文書を取得できることです。
これは可能ですか?
答え1
一般的な状況は次のとおりです。
nmap -n -sn 192.0.2.0/24 -oG - | awk '/Up$/{print $2}'
オプションとコマンドの簡単な概要:
-n
IPアドレスのみが必要なので、リバース名解決をオフにしてください。ローカルLANでは、おそらく最も遅いステップなので、速度が大幅に向上します。-sn
これは「ポートスキャンなし」を意味します。以前のバージョンと同じですが、-sP
ニーモニック「Ping Scan」は廃止されました。-oG -
送る「grepable」出力にパイプされる stdout でawk
。/Up$/
ホストがオンラインであることを示すには、「Up」で終わる行のみを選択します。{print $2}
IPアドレスである2番目のスペースで区切られたフィールドを印刷します。
答え2
次にパイプすることができますawk
。
nmap -sP 192.168.1.0/24 | awk '/is up/ {print up}; {gsub (/\(|\)/,""); up = $NF}'
192.168.1.1
192.168.1.10
192.168.1.20
192.168.1.30
答え3
また、次のようにおよびを組み合わせawk
て使用できます。grep
cut
wolf@linux:~$ nmap -sn -oG - 192.168.0.* | grep Up | cut -d ' ' -f 2
192.168.0.7
192.168.0.8
192.168.0.9
wolf@linux:~$
答え4
GNUバージョン7以降では、sort
よりきれいな数値ソートのためのオプションを使用できます。-V
nmap -n -sn 192.168.0.0/24 -oG - | awk '/Up$/{print $2}' | sort -V
192.168.0.2
192.168.0.3
192.168.0.21
192.168.0.22