如何批量检查域名是否可用?

3

我想进行批量域名查询,以查看某些域名是否可以购买。我找不到一个适用的Perl模块,但似乎应该有一种在Perl中实现此功能的方法。我正在寻找免费的解决方案。谢谢!


可能存在重复问题:http://stackoverflow.com/questions/3463336/recommended-apis-for-checking-domain-availability 或 http://stackoverflow.com/questions/2523260/recommendations-for-domain-name-registrar-with-api-support - bdonlan
1
实际上,这不是重复的。我正在寻找一些免费的东西...那些人在寻求付费版本。 - user_78361084
2个回答

1

从这里开始:http://www.webhostingtalk.com/showthread.php?t=625723

这是一个快速的 Perl 脚本,需要 Net::DNS(相当常见的模块)。

#!/usr/bin/perl

# Domains Available
# Josh Skidmore <josh@vorcado.com>
# 05 August 2007 | 11:40p EST

# Requirements
    use Net::DNS;

# Variables
    %VAR    =   (
                    db => './domains.txt',
                );

# Open file
    open (DB,$VAR{'db'});
    my (@domains) = <DB>;
    close (DB);

# Test domains
    foreach my $domain (@domains)
        {
            chomp($domain);

            my ($available) = &check_domain(domain => $domain);

            if ($available)
                {
                    print "$domain is available.<br />\n";
                }
            else
                {
                    print "$domain is NOT available<br />\n";
                }
        }

sub check_domain {

    # Test domain for existance
    # Josh Skidmore <josh@vorcado.com>
    # 05 August 2007 | 11:42p EST

    # Variables
        my (%DATA) = @_ ;
        my ($available) = 0;

    # Start Net::DNS
        my $res = Net::DNS::Resolver->new;
        $res->udp_timeout(2);
        $res->tcp_timeout(2);

        my ($domain) = $res->search($DATA{'domain'});

        if ($domain)
            {
                ($available) = 1;
            }

    # Output
        return ($available);
}

3
我看到了那一个,但正如该留言板上的下一个回答所指出的那样,一个域名无法解析并不意味着它是可用的。 - user_78361084
1
为每个请求创建Net::DNS::Resolver对象成本高昂。 - Joel Berger

1

CPAN上有很多类似于whois的模块。例如,Net::Whois::Parser看起来很有前途。

如果没有这些模块,Linux和其他类Unix系统(包括Windows的Cygwin)都可以使用whois命令。此外,CPAN上还有一个Perl脚本whois。运行这些程序很容易。麻烦的部分是解析这些程序的输出,而Perl绝对可以帮助你完成这个任务。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接