Domanda

Mi piacerebbe controllare l'equipaggiamento della mia rete di grandi dimensioni nel modo più veloce possibile. Devo usare Nmap::Parser o Nmap::Scanner ?

Voglio creare un elenco di indirizzi IP che restituiscono un ping e un relativo ingombro del sistema operativo e l'identificazione.

Esempio :

ping 192.168.*.*

Poi, quando ricevo un ping di successo, memorizzare l'indirizzo IP in un hash con una supposizione di ciò che il sistema operativo è

È stato utile?

Soluzione

Sia che si utilizzi Nmap::Parser o Nmap::Scanner, è necessario eseguire la stessa scansione con Nmap, quindi non c'è differenza di velocità tra i due.

Ecco un esempio utilizzando Nmap::Scanner che fa circa quello che si vuole, riportando lo stato dei padroni di casa e il tentativo di OS loro impronte digitali, se sono in su, memorizzare i risultati in un hash. Si dovrebbe essere in grado di estendere in base alle esigenze.

#!/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;
}

Altri suggerimenti

Bene, uno di questi è un parser per i dati che già hanno, e uno di questi è uno scanner che crea dati. Utilizzare quello che fa il lavoro che avete bisogno. Quale parte del compito è la causa del problema?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top