Настройка сетевых хостов как переменных с 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" );