ネットワークに接続すると、ネットワーク上の共有 SMB ドライブを自動的に実行して自動的にアクセスする Perl スクリプトの作成に取り組んでいます。これまでのところ、以下のコードを使用して、インターネット接続がネットワーク上に存在することを確認し、ポート 139 の Nmap スキャンを実行することを確認しました。これは単純なコードであり、明らかに正常に動作しています。ただし、ポート 139 を開いた状態で各 IP アドレスを自動的に取得し、それぞれを変数に変換して、さらに 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" );