#!/usr/bin/perl -w $| = 1; use strict; use File::Find; use FileHandle; use Net::DNS::ZoneFile; # use DNS::ZoneParse; use Data::Dumper; my $base = "/chroot/named/master/arpa/in-addr/68/168"; my $out_dir = "/var/tmp/ptr"; find(\&wanted, $base); exit; sub wanted { return unless ( -f "$File::Find::name" and $File::Find::name !~ m!/com/! ); return unless ( -f "$File::Find::name" and $File::Find::name !~ m!/net/! ); my $zone = $File::Find::name; my $out = join('.', ( split('/', $zone) )[-1,-2,-3]); my $rrset = Net::DNS::ZoneFile->readfh($zone[, $root]); # my $dns = DNS::ZoneParse->new("$zone"); open(OUT, ">$out_dir/$out") or die "Cant create $out_dir/$out: $!\n"; print $_->string . "\n" for @$rrset; # print OUT Data::Dumper->Dump([$dns->ptr]) . "\n"; close(OUT); }