Blame contrib/find_zonecut

Packit e6c8bb
#!/usr/bin/perl
Packit e6c8bb
$VERSION = (qw$LastChangedRevision: 1251 $)[1] || 0.01;
Packit e6c8bb
Packit e6c8bb
=head1 NAME
Packit e6c8bb
Packit e6c8bb
find_zonecut - Find zonecut for a domain name
Packit e6c8bb
Packit e6c8bb
Packit e6c8bb
=head1 SYNOPSIS
Packit e6c8bb
Packit e6c8bb
    find_zonecut name
Packit e6c8bb
Packit e6c8bb
Packit e6c8bb
=head1 DESCRIPTION
Packit e6c8bb
Packit e6c8bb
B<find_zonecut> returns the name of the closest delegation point
Packit e6c8bb
to the specified domain name.
Packit e6c8bb
Packit e6c8bb
=cut
Packit e6c8bb
Packit e6c8bb
use strict;
Packit e6c8bb
use Net::DNS;
Packit e6c8bb
Packit e6c8bb
my $resolver = new Net::DNS::Resolver();
Packit e6c8bb
Packit e6c8bb
print find_zonecut(shift), "\n";
Packit e6c8bb
Packit e6c8bb
Packit e6c8bb
sub find_zonecut {			## Copyright (c)2014 Dick Franks
Packit e6c8bb
	my $name  = shift;
Packit e6c8bb
	my $reply = $resolver->send( "*.$name", 'NULL' ) || die $resolver->errorstring;
Packit e6c8bb
	my ($cut) = map $_->name, $reply->authority;
Packit e6c8bb
	return $cut || die "failed to find zone cut for $name";
Packit e6c8bb
}
Packit e6c8bb
Packit e6c8bb
__END__
Packit e6c8bb
Packit e6c8bb
Packit e6c8bb
=head1 COPYRIGHT
Packit e6c8bb
Packit e6c8bb
(c)2014  Dick Franks E<lt>rwfranks[...]acm.orgE<gt>
Packit e6c8bb
Packit e6c8bb
All rights reserved.
Packit e6c8bb
Packit e6c8bb
This program is free software; you may use or redistribute
Packit e6c8bb
it under the same terms as Perl itself.
Packit e6c8bb
Packit e6c8bb
FOR DEMONSTRATION PURPOSES ONLY, NO WARRANTY, NO SUPPORT
Packit e6c8bb
Packit e6c8bb
=head1 SEE ALSO
Packit e6c8bb
Packit e6c8bb
L<perl>, L<Net::DNS>
Packit e6c8bb
Packit e6c8bb
=cut
Packit e6c8bb