web-dev-qa-db-ja.com

オンラインのすべてのホストをスキャンする最速の方法

一連のネットワークでオンラインになっているすべてのホストを探しています。

170.10 .のネットワーク全体でオンラインになっているすべてのホストを検索したいと思います(可能なホストは64K以下です)。スキャンしようとしているネットワークは内部ローカルネットワークです。

Nmapツールを使用しました。しかし、それは約50分かかります。 64Kホストのうち、オンラインで実行できるホストは約20〜40台のみです。しかし問題は、それらが可能な256ネットワークのうちの任意の(または1つ以上の)ネットワークにある可能性があることです。

これをすばやく理解する方法を探しています。 64Kホストへのpingは高速にならないので、pingコマンドを使用しても効果がないと思います。

ICMPパケットを256のネットワークすべてに直接ブロードキャストするなどの代替ソリューションを探しています。

アイデア/提案はありますか?ありがとう。

3
P.P

短い答え:nmap -sn -T5 --min-parallelism 100 subnet/mask -oG output.file.txt; grep -v Down output.file.txt

説明:nmapだけではるかに高速にスキャンできるはずです。 nmapを-sPでpingスキャンを実行するように制限することから始めます(新しいバージョンは-sPを-snに置き換えました)

man nmapから:

TIMING AND PERFORMANCE:
     Options which take <time> are in seconds, or append 'ms' (milliseconds),
     's' (seconds), 'm' (minutes), or 'h' (hours) to the value (e.g. 30m).
     -T<0-5>: Set timing template (higher is faster)
     --min-hostgroup/max-hostgroup <size>: Parallel Host scan group sizes
     --min-parallelism/max-parallelism <numprobes>: Probe parallelization
     --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time>: Specifies
         probe round trip time.
     --max-retries <tries>: Caps number of port scan probe retransmissions.
     --Host-timeout <time>: Give up on target after this long
     --scan-delay/--max-scan-delay <time>: Adjust delay between probes
     --min-rate <number>: Send packets no slower than <number> per second
     --max-rate <number>: Send packets no faster than <number> per second

より多くのpingスキャンを並列に実行する少しの実験の時間--max-parallelismと風の中で検出されることについての警告-T5

オプションなしのnmap:

% time nmap -sP 192.168.1.0/24 
[...]
nmap -sP 192.168.1.0/24  0.04s user 0.02s system 2% cpu 2.917 total
% time nmap -T5 --max-parallelism=100 -sP 192.168.1.0/23
[...]
nmap -sP 192.168.1.0/23  0.08s user 0.04s system 0% cpu 37.469 total

タイミングオプション付きのnmap:

% time nmap -T5 --max-parallelism=100 -sP 192.168.1.0/24
[...]
nmap -T5 --max-parallelism=100 -sP 192.168.1.0/24  0.03s user 0.03s system 3% cpu 2.016 total
% time nmap -T5 --max-parallelism=100 -sP 192.168.1.0/23
[...]
nmap -T5 --max-parallelism=100 -sP 192.168.1.0/23  0.11s user 0.02s system 2% cpu 4.869 total

かなりの改善。

/ 16サブネットスキャンの場合、OPのように:

Nmap done: 65536 IP addresses (30 hosts up) scanned in 169.43 seconds
nmap -sP -T5 --min-parallelism 100 --max-parallelism 256 192.168.0.0/16  44.67s user 8.45s system 31% cpu 2:49.44 total

@Danの提案をミックスでも投げるには、fpingを実行したまま5分を打った後、私は退屈しました:-)

15
fuero

より多くのスレッド。 256 nmapスキャンを同時に開始します。ホストが同時接続を処理できることを願っています。

for i in 172.10.{0..255}.0 ; do nmap $i <arguments> & done;

端末の出力は、256 nmapを一度に実行して解析するのが非常に難しいため、ファイルへの書き込みを確実に行う必要がある場合があります。

編集:

Pingでも同じことができます。必ず数を制限してください。あなたはこれを微調整したいかもしれません:

for i in {0..255} ; do for j in 172.10.$i.{0..255} ; do ping $j -c 2 -W 1 | \
    grep "bytes from" >> aliveips.txt & done ; done
1
Hyppy