All pastes #820911 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-12-17 20:27 UTC
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 =~ //) {};
    };