Perl Nmap::Scanner インストール

Perlでnmapを利用したプログラムを書きたくなったので調度良さそうなライブラリを探していたところNmap::Scannerというものを見つけた。

# cpan install Nmap::Scanner
と実行したところエラーが発生した。原因はClass::Generateがインストールできないかららしい。

面倒なことにClass::Generateの現行バージョンはPerl 5.10以上でなければならないらしい。
そこでバージョンを探してみた結果、Class::Generate 1.09があったためこちらを指定してインストールした。

cpan> install S/SW/SWARTIK/Class-Generate-1.09.tar.gz

その後、Nmap::Scannerをもう一度インストールしてみたところ問題なくインストールできた。

まともなサンプルコードも少ないので載せておく。

#!/usr/bin/perl
use Nmap::Scanner;
my $scan = Nmap::Scanner->new();
$scan->add_target('localhost');

my $results = $scan->scan();

my $hosts = $results->get_host_list();

while (my $host = $hosts->get_next()) {
    my $hostname  = $host->hostname();
    my $addresses = join(',', map {$_->addr()} $host->addresses());
    print "Check Host " . $hostname . "\n";
    print "Check Adrr " . $addresses . "\n";

    my $ports = $host->get_port_list();

    while (my $port = $ports->get_next()) {
        my $service = $port->service();
        print join(' ',
            'Port',
            $port->protocol() . '/' . $port->portid(),
            'Service',
            $service->name(),
            'is in state',
            $port->state(),
            "\n"
        );
    }

}

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(Spamcheck Enabled)

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)