#!/usr/bin/perl

use strict;
use warnings;

my $VERSION = (qw$LastChangedRevision: 1944 $)[1];

=head1 NAME

find_zonecut - Find zonecut for a domain name


=head1 SYNOPSIS

    find_zonecut name


=head1 DESCRIPTION

B<find_zonecut> returns the name of the closest delegation point
to the specified domain name.

=cut

use Net::DNS;

print find_zonecut(shift), "\n";


sub find_zonecut {
	my $name = shift;
	require Net::DNS::Resolver::Recurse;
	my $resolver = Net::DNS::Resolver::Recurse->new();
	my $response = $resolver->send( $name, 'NULL' ) || die $resolver->errorstring;
	my ($cut)    = map { $_->name } $response->authority;
	return $cut || die "failed to find zone cut for $name";
}

__END__


=head1 COPYRIGHT

(c)2014	 Dick Franks E<lt>rwfranks[...]acm.orgE<gt>

All rights reserved.

FOR DEMONSTRATION PURPOSES ONLY, NO WARRANTY, NO SUPPORT

=head1 SEE ALSO

L<perl>, L<Net::DNS>

=cut

