检查域可用性Java

时间:2010-02-03 21:48:43

标签: java dns whois

在Java中是否有一种相对简单的方法来检查域是否可用?

我需要一个可靠的方法,所以只检查是否可以建立连接是不够的。

4 个答案:

答案 0 :(得分:6)

域可用性取决于拥有whois客户端。以下是Java中whois客户端实现的链接:

Java Whois Client

您需要解析结果 - 根据您使用的服务器,您可能会(将)返回不同的格式。最好的办法是支付商业whois /注册服务,如OpenSRS。它们具有广泛的API,您可以将其用作注册经销商。以下是API文档:

http://opensrs.com/resources/documentation/opensrs_xmlapi.pdf

HTH,

-AJ

答案 1 :(得分:4)

这里有一个好的Whois Java客户端:

https://github.com/ethauvin/Whois

您可以直接从命令行或界面运行它:

// don't include the www        
Whois.main(new String[] {"skytouch.com"});

答案 2 :(得分:0)

另一个解决方案是使用Apache Commons lib。简化示例:

import org.apache.commons.net.whois.WhoisClient;

public String getWhois(String domainName){

    WhoisClient whois = new WhoisClient();

    whois.setConnectTimeout(10000);
    whois.setDefaultTimeout(10000);

    whois.connect("whois.verisign-grs.com", 43);

    String domainWhois = whois.query(domainName);

    whois.disconnect();

    return domainWhois;
}

检查响应是否等于“不匹配”。 Whois服务器,超时长度和无可用性响应根据扩展名而不同,因此您应该为它们准备额外的集合。

可以找到Whois服务器列表:

如果您尝试同时进行查询,您肯定会得到“您已达到配置的速率限制”的响应。或代码中的显式异常,因此您应该在睡眠后重复查询。

答案 3 :(得分:-1)

在域上执行DNS查找是最简单的解决方案。所有可用域都没有DNS记录,大多数注册商在注册时分配默认DNS条目。

WHOIS查询将是您最可靠的解决方案,尤其是在欺骗自己的服务器的ISP(带有广告的“未找到域名”页面)的任何丢失的域名后面。