Dois-je utiliser Nmap :: Parser ou Nmap :: Scanner pour auditer un réseau?
-
19-09-2019 - |
Question
Je voudrais vérifier l'équipement de mon grand réseau le plus rapidement possible. Dois-je utiliser Nmap::Parser
ou Nmap::Scanner
?
Je veux créer une liste d'adresses IP qui renvoient un ping ainsi qu'une empreinte du système d'exploitation connexes et d'identification.
Exemple :
ping 192.168.*.*
Alors quand je reçois un ping réussi, stocker l'adresse IP dans un hachage avec une estimation de ce que le système d'exploitation est
La solution
Que vous utilisiez Nmap::Parser
ou Nmap::Scanner
, vous devez exécuter la même analyse avec Nmap, donc il n'y a pas de différence de vitesse entre les deux.
Voici un exemple d'utilisation Nmap::Scanner
qui ne peu près ce que vous voulez, rapport sur l'état des hôtes et tenter d'empreintes digitales OS les si elles sont en place, le stockage des résultats dans un hachage. Vous devriez pouvoir l'étendre au besoin.
#!/usr/bin/perl
use strict;
use warnings;
use Nmap::Scanner;
my %network_status;
my $scanner = new Nmap::Scanner;
$scanner->register_scan_complete_event(\&scan_completed);
$scanner->guess_os();
$scanner->scan('-O 192.168.*.*');
foreach my $host ( keys %network_status ) {
print "$host => $network_status{$host}\n";
}
sub scan_completed {
my $self = shift;
my $host = shift;
my $hostname = $host->hostname();
my $addresses = join(',', map {$_->addr()} $host->addresses());
my $status = $host->status();
print "$hostname ($addresses) is $status ";
my $os_name = 'unknown OS';
if ( $status eq 'up' ) {
if ( $host->os() && $host->os()->osmatches() ) {
my ($os_type) = $host->os()->osmatches();
$os_name = $os_type->name();
}
print "($os_name)";
}
print "\n";
$network_status{$addresses} = $os_name;
}
Autres conseils
Eh bien, l'un d'entre eux est un analyseur de données que vous avez déjà, et l'un d'entre eux est un scanner qui crée des données. Utilisez celui qui fait le travail que vous avez besoin. Quelle partie de la tâche est à l'origine du problème?