1
我將兩個名稱服務器傳遞給Net::DNS::Resolver
構造函數,但我只得到一個結果。來自多名域名服務器的DNS解析器結果
我應該如何更改代碼以接收來自所有名稱服務器的結果?
sub resolve_dns()
{
my $dns = $_[0];
my $res = Net::DNS::Resolver->new(
nameservers => [qw(24.116.197.232 114.130.11.67)],
recurse => 0,
debug => 1,
tcp_timeout => 3
);
my $query = $res->search($dns);
if ($query) {
foreach my $rr ($query->answer) {
next unless $rr->type eq "A";
print $rr->address, "\n";
}
} else {
warn "query failed: ", $res->errorstring, "\n";
}
}
每當我給'$水庫>域名服務器(NS $)'聲明,代碼是懸掛並沒有打印語句工作。當我評論這條線時,一切正常。 – cppcoder 2012-04-11 19:37:25
如果您使用無效的DNS服務器地址,則代碼將掛起。檢查傳遞給'nameservers'方法的'$ ns'的值。還要注意,您必須爲地址傳遞一個空字符串,而不是像構造函數那樣傳遞一個匿名數組。他們是否有領先或尾隨的空白?這些地址不適合我,但我想他們是在一個專用網絡上。 – Borodin 2012-04-11 21:54:22