#!/usr/bin/perl -w use strict; use Net::DNS; my @domainIp = resolveDomainIp ('test.ad.local'); my $i=1; foreach (@domainIp) { print $i++ . ": $_\n"; } sub resolveDomainIp { my $adFqdn = shift; error ("i need to know the active directory domain name (eg. microsoft.ad.local)", 'exit') unless ($adFqdn); error ("provided active directory domain doesn't look like a domain name", 'exit') unless ($adFqdn =~ /^([a-zA-Z0-9]+)\.([a-zA-Z0-9]+)/); my $res = Net::DNS::Resolver->new; my $query = $res->search($adFqdn); my @dcIp; if ($query) { foreach my $rr ($query->answer) { next unless $rr->type eq "A"; push @dcIp, $rr->address . " (record type " . $rr->type . ")"; } return @dcIp; } else { my $errMsg = $res->errorstring; error ("dns server the platform is asking from doesn't know any ip addresses for $adFqdn", 'exit') if @_ != 1; } }