rendered paste body#!/usr/bin/perl
use strict;
use warnings;
use DBI;
use Net::Ping;
my $i = {
'cfg' => "servers.cfg"
};
## SLAVE:IP:VPNIP:GLPORT:SSHPORT
open (CFG, "<", "$i->{cfg}");
print "Opening file ".$i->{cfg}."\n";
while (my $slave = <CFG>) {
my ($name, $wanip, $vpnip, $glport, $sshport) = split(/:/, $slave);
print "Name: ".$name."\nWanip: ".$wanip."\nVpnip: ".$vpnip."\nGlport: ".$glport."\nsshport: ".$sshport;
my $pingstatus = getping($name, $wanip, $vpnip);
my $glstatus = getglstatus($name, $wanip, $vpnip, $glport);
print "\n"
}
sub getping {
my $name = $_[0];
my $wanip = $_[1];
my $vpnip = $_[2];
my $ping = Net::Ping->new("icmp");
print "$wanip is ";
print "NOT " unless $ping->ping($wanip, 2);
print "reachable. \n";
print $vpnip . " is ";
print "NOT " unless $ping->ping($vpnip, 2);
print "reachable. \n";
};
sub getglstatus {
#($name $wanip, $vpnip, $glport);
my $name = $_[0];
my $wanip = $_[1];
my $vpnip = $_[2];
my $glport = $_[3];
my $scan = `nmap -p $glport -P0 $wanip`;
if (grep (/$glport\/tcp\ open/, $scan)){
print "$name has $glport opened up on $wanip"
}
#if ($scan =~ //) {};
};