使用 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
将为“空”。
我需要检查域名列表并获取没有 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
将为“空”。