#!/usr/bin/perl

use strict;
use warnings;

my $VERSION = (qw$LastChangedRevision: 1811 $)[1] || 0.01;

=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;

my $resolver = Net::DNS::Resolver->new();

print find_zonecut(shift), "\n";


sub find_zonecut {			## Copyright (c)2014 Dick Franks
	my $name  = shift;
	my $reply = $resolver->send( "*.$name", 'NULL' ) || die $resolver->errorstring;
	my ($cut) = map { $_->name } $reply->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

