80 |
rodolico |
1 |
#! /usr/bin/env perl
|
|
|
2 |
|
|
|
3 |
use strict;
|
|
|
4 |
use warnings;
|
|
|
5 |
|
81 |
rodolico |
6 |
# this is a filter. A list of domains is passed on STDIN
|
|
|
7 |
# for each domain, it will check that the DNS record matches
|
|
|
8 |
# $myIP and, if it does not, will display the domain on
|
|
|
9 |
# STDOUT.
|
|
|
10 |
|
|
|
11 |
# Strongly recommend you verify before deleting any web sites, however.
|
|
|
12 |
|
|
|
13 |
# A sample call is
|
80 |
rodolico |
14 |
# ls /var/www/ | grep '^.*\..*$' | grep -v '^quota' | ./doWeHost.pl
|
81 |
rodolico |
15 |
# this gets all domains listed in /var/www which contain at least one
|
|
|
16 |
# period. Since the quota controls for ISPConfig are in here and have
|
|
|
17 |
# a period in their filenames, we use grep -v to exclude them
|
|
|
18 |
# that list is then piped to the script on STDIN
|
80 |
rodolico |
19 |
|
81 |
rodolico |
20 |
# the IP address of the web hosting machine (ie, this machine)
|
80 |
rodolico |
21 |
my $myIP = '74.113.60.152';
|
81 |
rodolico |
22 |
# the IP address of a remote DNS server
|
80 |
rodolico |
23 |
my $dnsServer = '9.9.9.9';
|
|
|
24 |
|
|
|
25 |
while ( my $domain = <> ) {
|
|
|
26 |
chomp $domain;
|
|
|
27 |
my $result = `dig +short \@$dnsServer $domain`;
|
|
|
28 |
print "$domain\n" unless $result =~ m/$myIP/;
|
|
|
29 |
}
|