#! /usr/bin/perl -w use strict; use Getopt::Long; my $domain = ""; my $wildcard = 0; my $ok = GetOptions('d=s' => \$domain, 'w' => \$wildcard); my $RESPDNS = "hostmaster\@domain.com"; my $TTLMIN = 7200; my @NS = qw(ns1.domain.com ns2.domain.com); my $serial_no = serialnumber(); my $REFRESH = 21600; my $RETRY = 3600; my $EXPIRE = 216000; write_soa($domain); while (<>) { chomp; eff_blancs($_); if (/^\#/) { $_ =~ tr/\#/ /; #printf "; %s\n", $_; next; } next if /^\s*[#]*\s*$/; my ($host, $rem) = split " ", $_, 2; my @ENTRY = qw(); if (is_ip_valid($host)) { push @ENTRY, rev_ip($host); } else { push @ENTRY, $host; push @ENTRY, "*." . $host if $wildcard; } eff_blancs($rem) if defined $rem; foreach my $x (@ENTRY) { printf "%-40s IN TXT \"$rem\"\n", $x, $rem if defined($rem) && $rem ne ""; printf "%-40s IN A 127.0.0.2\n", $x; } } exit 0; ###################################################################### # # Ecrit l'enregistrement SOA # sub write_soa { return unless ($#_ >= 0); my ($domain, undef) = @_; my $respdns = $RESPDNS; $respdns =~ tr/\@/\./; my $date = `date`; chomp($date); print <