Pergunta

Eu gostaria de auditar o equipamento do meu grande rede da maneira mais rápida possível. Devo usar Nmap::Parser ou Nmap::Scanner ?

Eu quero criar uma lista de endereços IP que retornam um ping, bem como uma pegada OS relacionado e identificação.

Exemplo :

ping 192.168.*.*

Então, quando eu recebo um ping bem-sucedido, armazenar o endereço IP em um hash junto com uma suposição de que o sistema operacional é

Foi útil?

Solução

Se você usa Nmap::Parser ou Nmap::Scanner, você tem que executar a mesma varredura com Nmap, portanto, não há diferença de velocidade entre os dois.

Aqui está um exemplo usando Nmap::Scanner que faz aproximadamente o que você quer, relatando o status dos anfitriões e tentar OS fingerprint-los se eles estão em alta, armazenando os resultados em um hash. Você deve ser capaz de estendê-lo conforme necessário.

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

Outras dicas

Bem, uma delas é um analisador para os dados que você já tem, e uma delas é um scanner que cria dados. Use o que faz o trabalho que você precisa. Que parte da tarefa está causando o problema?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top