使用 Perl 批量检查域可用性

Bulk check domains avability with Perl

我需要检查域名列表并获取没有 NS(可能未注册)的域列表。我已经找到了一个很好的 ADNS 和 adnshost 解决方案。命令“adnshost -a -tns domain.com”做我需要的(输出中的第 4 列将包含结果)但我想用 Perl 和 Net::DNS::Async.[=11= 实现相同的效果]

我的代码:

#!/usr/bin/perl -w

use strict;
use utf8;
use Net::DNS::Async;

my $c = new Net::DNS::Async(QueueSize => 1000, Retries => 3);

my $filename = 'domain_list.txt';

open(FH, '<', $filename);

while(<FH>){

chomp($url);

$c->add(\&callback, "$url");

}

$c->await();

sub callback {
my $response = shift;
print $response->string;
}

那么,如何使用 Perl 和 Net::DNS::Async 获取所需的信息?

您可以将 NS 添加到 add 个参数。

while (<FH>) {
    chomp;
    $c->add(\&callback, $_, 'NS');
}

$c->await();

sub callback {
    my $response = shift;
    unless ($response->answer) {
        my $host = join '.', @{$response->{question}[0]{qname}{label}};
        print "$host\n";
    }
}
如果没有回复,

$response->answer 将为“空”。