砲撃はnmapなどと考えられます。その目的に十分に合っていて、かなり速く、必要なものを満たすためにpingを実行するのに十分な方法が含まれています。ここに私のネットワークのセグメント上のすべてのホストを発見するnmapのを使用しています:
[email protected]:~$ nmap -sP 10.0.0.0/24
Starting Nmap 5.00 (http://nmap.org) at 2010-12-08 09:16 MST
Host gw (10.0.0.1) is up (0.00036s latency).
Host 10.0.0.2 is up (0.0071s latency).
Host isengard.internal.databill.com (10.0.0.3) is up (0.00062s latency).
...
Host arod.internal.databill.com (10.0.0.189) is up (0.0046s latency).
Host 10.0.0.254 is up (0.00042s latency).
Nmap done: 256 IP addresses (43 hosts up) scanned in 3.00 seconds
ここでは、10.0.0.0から10.0.0.255を介してすべてのホストのためにスキャンしました。
-sPは、通常のユーザーとして実行できるかなり一般的なホスト検出メカニズムである「pingスキャン」です。 nmapには他のタイプのスキャンがあり、その多くはroot権限を必要とします。 Rubyで
、あなたはnmapを実行し、その結果をキャプチャするためにバッククォートやIO.popenを使用します:
output = `nmap -sP 10.0.0.0/24
output.each_line.find_all do |lines|
line =~ /^Host/
end.each do |line|
# Whatever you want to do for each host
end
あなたが解析しやすいかもしれ-oXスイッチ、nmapの意志の出力XMLを供給した場合(ありがとう、タドマン)。
私は今夜、利用可能な他のソリューションと一緒に試してみます。ありがとう! –
'nmap -oX'を使うと、処理しやすいXML出力を得ることができます。 – tadman