2

我正在使用执行 WhoIs 查询的 API 来确定域的可用性。

但是,似乎每个 TLD 都会给出不同类型的响应,因此我必须为每个 TLD 创建自定义搜索:

result.match("No match for") //.com
result.match("NOT FOUND") //.info, .org
!result.match("Administrative")//.biz
result.match("Invalid query or domain")//.tk
!result.message.match("registered")//.ca
result.match("No Match")//.edu
result.match("Status: free")//.de
result.match("Not found:")//.de

还有数百个 TLD 需要处理。当然,这不是最好的方法。是否有更简单的方法来确定域是否已注册?

4

2 回答 2

3

不幸的是没有。确定域是否可用的唯一方法是通过 whois 调用。您不能使用其他方法,例如 DNS,因为即使域没有解析它也不意味着它可用。

主要问题正是这个问题:每个服务器都可以使用完全不同的字符串进行响应。如果你真的想把它做好,你必须收集所有不同的字符串或针对大量的可能性进行测试。

我是Ruby whois library的作者。到目前为止,它是唯一一个为每个响应提供规范和解析器的开源库。看看吧,你可以直接使用它或者从那里得到所有不同的响应,代码是开源的。

另外请记住,如果您不想处理这个问题,可以使用一些服务来检查域的可用性。

这里有几个:

免责声明:我是RoboWhois的作者。

于 2013-04-19T07:42:32.063 回答
1

我试图通过编译一个全面的Whois 服务器列表来解决这个问题。此列表包含 500 多个顶级域。随意使用该列表。

但是,如果您不想费心使列表保持最新或对 whois 服务器进行速率限制,我可以向您推荐我的Whois API,它也在使用该列表。

于 2016-03-08T13:19:24.217 回答