يجب أن أستخدم NMAP :: Parser أو NMAP :: Scanner لتدقيق الشبكة؟

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

  •  19-09-2019
  •  | 
  •  

سؤال

أرغب في مراجعة معدات شبكتي الكبيرة في أسرع طريقة ممكنة. هل ينبغي أن أستخدم Nmap::Parser أو Nmap::Scanner?

أريد إنشاء قائمة عناوين IP التي ترجع بينغ بالإضافة إلى بصمة نظام التشغيل ذات الصلة وتحديد الهوية.

مثال:

بينغ 192.168. *. *

ثم عندما أحصل على Ping بنجاح، قم بتخزين عنوان IP في التجزئة جنبا إلى جنب مع تخمين ما هو نظام التشغيل

هل كانت مفيدة؟

المحلول

سواء كنت تستخدم Nmap::Parser أو Nmap::Scanner, ، عليك تشغيل نفس الفحص مع NMAP، لذلك لا يوجد فرق في السرعة بين الاثنين.

هنا مثال باستخدام Nmap::Scanner الذي يفعل ما تريد تقريبا، الإبلاغ عن حالة المضيفين ومحاولة بصمات الأصابع الخاصة بهم إذا كانوا فوق، تخزين النتائج في التجزئة. يجب أن تكون قادرا على تمديده حسب الحاجة.

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