我正在使用一个执行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需要经历。当然,这不是最好的方法。是否有更简单的方法来确定域名是否已注册?
答案 0 :(得分:3)
不幸的是没有。确定域是否可用的唯一方法是通过whois调用。您不能使用DNS之类的替代方法,因为即使域无法解析它也不意味着它可用。
主要问题恰恰在于:每个服务器都可以使用完全不同的字符串进行响应。如果你真的想要做得对,你必须收集所有不同的字符串或测试大量的可能性。
我是Ruby whois library的作者。到目前为止,它是唯一一个为每个响应提供规范和解析器的开源库。看看它,你可以直接使用它或从那里得到所有不同的响应,代码是开源的。
另请注意,如果您不想处理该问题,可以使用一些服务来检查域可用性。
以下是一些:
免责声明:我是RoboWhois的作者。
答案 1 :(得分:1)
我尝试通过编译综合Whois server list来解决这个问题。此列表包含500多个顶级域名。随意使用该列表。
但是,如果您不想打扰列表的最新状态或对whois服务器进行速率限制,我可以向您推荐使用该列表的Whois API。