nmap
現在オンラインになっているホストのリストを見つける方法を知っています。私がやりたいのは、IPアドレスだけのリストを取得することです。
Nmap scan report for 192.168.x.x' and 'Host is up (0.12s latency).
私が望むのは、nmap
コマンドを実行して、現在オンラインになっているIPアドレスのテキストドキュメントを取得できるようにすることです。
これはまったく可能ですか?
nmap
現在オンラインになっているホストのリストを見つける方法を知っています。私がやりたいのは、IPアドレスだけのリストを取得することです。
Nmap scan report for 192.168.x.x' and 'Host is up (0.12s latency).
私が望むのは、nmap
コマンドを実行して、現在オンラインになっているIPアドレスのテキストドキュメントを取得できるようにすることです。
これはまったく可能ですか?
回答:
これは一般的なものです:
nmap -n -sn 192.0.2.0/24 -oG - | awk '/Up$/{print $2}'
オプションとコマンドの概要:
-n
IPアドレスが必要なだけなので、逆の名前解決をオフにします。ローカルLANでは、これもおそらく最も遅いステップなので、速度が大幅に向上します。-sn
「ポートスキャンを実行しない」という意味です。これ-sP
は、ニーモニック「pingスキャン」で廃止された古いものと同じです。-oG -
「grepable」出力をstdoutに送信し、stdout はにパイプされawk
ます。/Up$/
オンラインのホストを表す「Up」で終わる行のみを選択します。{print $2}
2番目の空白で区切られたフィールド(IPアドレス)を出力します。-sV
、ネットワークサービスバナーからの予測不可能な文字列を含むことができる、異なるタイプのスキャンからのファイルのgrepable出力に対して実行した場合でも機能します。
あなたはそれをパイプすることができます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
/Up
ですか?コマンドnmap -n -sn 192.0.2.0/24 -oG - | awk '/Up/{print $2}'
で同じ結果が得られることがわかりました。