nmapはオンラインマシンのIPアドレスのみを出力します。

nmapはオンラインマシンのIPアドレスのみを出力します。

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}'

オプションとコマンドの簡単な概要:

  • -nIPアドレスのみが必要なので、リバース名解決をオフにしてください。ローカル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て使用​​できます。grepcut

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

関連情報