scripts/tv/gen_dns.pl
Nicolas Dandrimont 575f926856 [tv] Les chaines anglaises ont plein de chars invalides...
darcs-hash:20100830140642-ffbb2-a61aca1ec6572f63cac833c4c25201e03d06f53a.gz
2010-08-30 16:06:42 +02:00

85 lines
2.1 KiB
Raku
Executable file

#!/usr/bin/perl -w
#
# Description: generation of bind9 configuration for tv.crans.org
# (direct and reverse zones)
#
# Copyright © 2009 Stéphane Glondu <steph@glondu.net>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301 USA.
#
open(DIRECT, "> /etc/bind/generated/db.tv.crans.org");
open(REVERSE, "> /etc/bind/generated/db.239.in-addr.arpa");
open(CHAINES, "< /tmp/chaines_recup_sap.txt");
my $serial = `date +%s`;
chomp($serial);
print DIRECT "\$ORIGIN tv.crans.org.
\$TTL 86400
@ IN SOA mdr.crans.org. root.crans.org. (
$serial ; numero de serie
21600 ; refresh
3600 ; retry
1209600 ; expire
86400 ; TTL
)
@ IN NS mdr.crans.org.
@ IN NS rouge.crans.org.
@ IN NS sila.crans.org.
@ IN NS freebox.crans.org.
@ IN A 138.231.136.243
";
print REVERSE "\$ORIGIN 239.in-addr.arpa.
\$TTL 86400
@ IN SOA mdr.crans.org. root.crans.org. (
$serial ; numero de serie
21600 ; refresh
3600 ; retry
1209600 ; expire
86400 ; TTL
)
@\tIN\tNS mdr.crans.org.
@\tIN\tNS rouge.crans.org.
@\tIN\tNS sila.crans.org.
@\tIN\tNS freebox.crans.org.
";
while (<CHAINES>) {
s/^[^ ]+ //;
if (/(.*):(.*)$/) {
my $name = "$1";
my $ip = "$2";
$name =~ s/[ .():,"+<>]//g;
$name = lc($name);
print DIRECT "$name IN A $ip\n";
if ($ip =~ /^\d+\.(\d+)\.(\d+)\.(\d+)$/) {
print REVERSE "$3.$2.$1 IN PTR $name.tv.crans.org.\n";
} else {
die "mauvaise adresse IP!";
}
}
}
close(DIRECT);
close(CHAINES);
close(REVERSE);
system("/etc/init.d/bind9 reload > /dev/null") == 0 or die "erreur lors du rechargement de bind9!";