Je considérerais le bombardement à nmap ou son semblable. Il est bien réglé à cet effet, étant assez rapide, et il contient assez de différentes façons de ping pour satisfaire tout besoin. Ici se sert de nmap pour découvrir tous les hôtes sur un segment de mon réseau:
[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
Ici, nous avons scannés pour tous les hôtes de 10.0.0.0 par 10.0.0.255. -sP est un "ping scan", un mécanisme de découverte d'hôte assez générique qui peut être exécuté en tant qu'utilisateur ordinaire. Il existe d'autres types d'analyse que fait nmap, dont beaucoup ont besoin de privilèges root.
Dans Ruby, vous utiliserez backtick ou IO.popen d'exécuter nmap et capturer ses résultats:
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
Si vous fournissez le commutateur -oX, Nmap XML de sortie, qui peut être plus facile à analyser (merci, tadman).
Je vais essayer ce soir, avec toutes les autres solutions qui deviennent disponibles. Merci! –
Si vous utilisez 'nmap -oX' vous pouvez obtenir une sortie XML qui peut être plus facile à traiter. – tadman