Настройка сетевых хостов как переменных с Nmap Scan в Perl

Я работаю над написанием сценария Perl, который будет автоматически запускаться и автоматически получать доступ к общим SMB-дискам в сети при подключении к указанной сети. До сих пор я делал это, используя приведенный ниже код, чтобы убедиться, что в сети есть интернет-соединение, а затем запустил сканирование Nmap для порта 139. Это простой код и, таким образом, он, очевидно, успешно работал, Тем не менее, что может быть хорошим способом автоматически взять каждый IP-адрес с открытым портом 139 и превратить каждый в переменную для дальнейших команд с smbclient? Проще говоря, я хочу, чтобы для каждого отсканированного IP-адреса с открытым портом было задано значение $IP1, $IP2, $IP3 и т. Д. Любая помощь или отзывы приветствуются.

#!/usr/bin/perl

use strict;
use Net::Ping;

## Check for an internet connection by pinging Google
my $p = Net::Ping->new("icmp");
while(1){
printf "Checking internet connection.....\n";
    if ($p->ping("172.217.4.132")){
    printf "Internet connection is active\n";
        sleep 1;
    last;
    }
    else{
    printf "Internet connection not established.\n";
        sleep 5*5;
    }
}
## Determine the gateway IP address of the network

my $IP = "192.168.1.1";

system( "nmap -vv $IP/24 -p 139 | grep open" );

0 ответов

Другие вопросы по тегам