#!/usr/bin/perl -w

use strict;
my $domain=shift||"mm.zq1.de";
$domain=~s/[^.]$/$&./;
my $prefixlen=64;


# processing starts here
my $first=1;
my $hostlen=128-$prefixlen;
my $oldprefix;
while(<>) {
	s/;.*//; # skip comments
	next if not m/^(\w+).*AAAA (200[0-9a-f:]+)/;
	my $name=$1;
	my @ether=split(":", $2);
# normalize :: sequence
   while(@ether<8) {
      for(my $n=@ether-1; $n>0; --$n) {
         if($ether[$n] eq "") {
            splice(@ether,$n,0,0);
            if(@ether==8) { $ether[$n]=0 }
            last;
         }
         if($n==1) {die "big error"}
      }
   }
	foreach(@ether) { $_=sprintf("%04s",$_); }
	my @digits=reverse(split("",join("",@ether)));
   my $x=$hostlen/4;
   my $prefix=join(".", @digits[$x..31]);
   if(!$oldprefix || $prefix ne $oldprefix) {
      $oldprefix=$prefix;
		print '$ORIGIN '.$prefix.".ip6.arpa.\n";
	}
	my $n6=join(".", @digits[0..($hostlen/4-1)]);
	print "$n6 IN PTR $name.$domain\n";
}

