Net::DNS bgsend



Hi all,

Im trying to query 8 internal dns servers at the same time and make sure
that there are at least 2 A records for the Specified device, but I cant
seem to get reliable results, I could do it by sending a query to each
server and waiting but that takes quite some, whereas using
Net::DNS->bgsend I am able to do it in 5% of the time.

For some reason my code is giving me inconsistant results, some that
have records are being returned with no records etc, but I cannot figure
out what the problem might be, I was hoping that someone could lead me
in the right direction.

%table is in the form of $table{MACADDRESS}
Using Net::DNS and IO::Select
most code was reused from Net::DNS demo mresolv (probably my problem).
---begin---
$d = Net::DNS::Resolver->new;
...........

foreach (sort {$table{$a} cmp $table{$b}} keys (%table)) {
$sel = IO::Select->new;
$dns{$_}{RESULT} = 0;
print $_, "\n";
foreach $server (@nameservers) {
$d->nameservers("$server");
$bgsock = $d->bgsend("a$_.int.domain");
$sel->add($bgsock);
}
for (@ready = $sel->can_read(10);@ready;@ready = $sel->can_read(1)) {
foreach $sock (@ready) {
$sel->remove($sock);
my $ans = $d->bgread($sock);
next unless $ans;
foreach $rr ($ans->answer) {
$dns{$_}{RESULT}++ if ($rr->address);
$rr->print;
}
}
}
}

---end---

Thanks.

.



Relevant Pages

  • Re: Event ID: 5504
    ... Internal DNS servers are configured to ... Internal DNS servers are configured to use ... The response is from a different root hint than the query was ...
    (microsoft.public.win2000.dns)
  • Re: Event ID: 5504
    ... > servers IP Config. ... Internal DNS servers are configured to use ... The response is from a different root hint than the query was ...
    (microsoft.public.win2000.dns)