我正在寻找在一组networking中find所有在线的主机。
我想find在170.10的整个networking在线的所有主机。 。 (有~64K可能的主机)。 我试图扫描的networking是一个内部本地networking。
我用nmap工具。 但是这大约需要50分钟,这太长了。 在64K主机中,只有20-40个主机在线。 但问题是,它们可能位于可能的256个networking中的任何(或一个或多个)networking中。
我正在寻找一种方法来快速弄清楚这一点。 我不认为使用ping命令将有助于ping 64K主机的速度。
我正在寻找任何替代解决scheme,可能直接向所有256个networking或类似的东西广播ICMP数据包。
任何想法/build议? 谢谢。
单独的nmap应该能够更快地扫描。 我们将通过限制nmap开始使用-sP进行ping扫描。
从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 (eg 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
时间只是进行一个小的实验,只是运行更多--max-parallelism扫描--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
为了把@丹的build议也扔进去,我用5分钟后仍然无法运行:-)
更multithreading。 同时启动256个nmap扫描。 希望你的主机可以处理同时连接。
for i in 172.10.{0..255}.0 ; do nmap $i <arguments> & done;
你可能想要确保它正在写一个文件到某个地方,因为terminal输出将会是非常糟糕的,试图用一次256个nmapsparsing。
编辑:
你可以用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