네트워크를 감사하기 위해 NMAP :: PARSER 또는 NMAP :: 스캐너를 사용해야합니까?

StackOverflow https://stackoverflow.com/questions/1515643

  •  19-09-2019
  •  | 
  •  

문제

가능한 가장 빠른 방법으로 대형 네트워크의 장비를 감사하고 싶습니다. 내가 사용해야할까요 Nmap::Parser 또는 Nmap::Scanner?

관련 OS 발자국 및 식별뿐만 아니라 Ping을 반환하는 IP 주소 목록을 만들고 싶습니다.

예시:

ping 192.168.*.*

그런 다음 성공적인 핑을 받으면 IP 주소를 해시에 보관하여 OS가 무엇인지 추측합니다.

도움이 되었습니까?

해결책

사용하든 Nmap::Parser 또는 Nmap::Scanner, NMAP로 동일한 스캔을 실행해야하므로 둘 사이에 속도 차이가 없습니다.

다음은 사용하는 예입니다 Nmap::Scanner 이는 주최자의 상태를보고하고 UP가 UP에있는 경우 OS 지문을 시도하고 결과를 해시에 저장하려고 시도합니다. 필요에 따라 확장 할 수 있어야합니다.

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

다른 팁

글쎄, 그 중 하나는 이미 가지고있는 데이터의 구문 분석기이며 그 중 하나는 데이터를 생성하는 스캐너입니다. 필요한 작업을 수행하는 것을 사용하십시오. 작업의 어느 부분이 문제를 일으키는가?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top