通过检查NS或SOA(授权的起始)记录,可以多准确地确定域名的可用性?
如果不行,如何在不使用WHOIS的情况下尽可能准确地确定域名的可用性?例如,如果不存在NS记录,是否值得检查MX记录?
我特别关心.co.za域名,但是在.co.za命名空间中,唯一官方、无懈可击的检查可用性方法是使用http://co.za/whois.shtml,它通过IP地址限制了连续检查。
通过检查NS或SOA(授权的起始)记录,可以多准确地确定域名的可用性?
如果不行,如何在不使用WHOIS的情况下尽可能准确地确定域名的可用性?例如,如果不存在NS记录,是否值得检查MX记录?
我特别关心.co.za域名,但是在.co.za命名空间中,唯一官方、无懈可击的检查可用性方法是使用http://co.za/whois.shtml,它通过IP地址限制了连续检查。
检查域名可用性的唯一100%可靠方法是查询注册机的数据库。我不会相信whois。
您可以使用DNS进行估算。我建议不要寻找SOA记录,而只需查看是否在TLD名称服务器上列出了任何内容。对此,dig
是一个很好的工具(它也可以在Windows上运行),虽然我猜你也可以使用nslookup。例如:
dig co.za. NS
该网站将提供.co.za域名的名称服务器列表,其中一个服务器是ns0.is.co.za。
接下来,直接查询该服务器以查看它们是否为您感兴趣的域名列出了任何内容:
dig ibm.co.za @ns0.is.co.za
该查询返回NS记录,但不包括SOA记录,因为SOA记录由域名服务器提供(可能在线,也可能不在线)。NS记录表示该域名正在使用。
直接查询的原因是它通常比依赖本地名称服务器进行递归查询要快得多。
adnshost
,我正在与N-DJBDNS(http://pjp.dgplug.org/ndjbdns/)一起使用作为递归解析器。adnshost -a -tns -f
输出中的第4列将包含结果代码:
Whois是检查域名可用性的规范方式。速率限制是有意为之的,以防止人们过度加载whois服务器。SOA记录的存在可能是一个好的猜测,但这并不是确定的答案。
实际上,DNS查找99%的时间都是有效的。如果你想要编写像Ajaxwhois这样的代码,我建议你采用这种方法。如果你需要检查一百万个名称,我建议您先使用DNS查找进行第一轮筛选,然后在可能考虑购买的名称上进行第二轮筛选。
dig co.za. NS
显示.co.za顶级域名服务器。Ping TLD服务器并使用最近的服务器以避免不必要的递归查询。感谢您的回答。
我也一直在使用dig方法来测试域名是否存在,然后再进行注册。但是大约有10%的情况下,它会返回已经被占用的域名。这是因为域名所有者还没有为该域名设置任何记录。所以我决定:
人们会浏览许多不可用的域名,这不会浪费UniForum提供的请求。只有当某些东西看起来可用时,才会在co.za上进行检查。这似乎是唯一可靠的方法,可以在不向co.za/whois.shtml发送大量请求的情况下进行操作 :)
尝试使用whois查询,但结果很奇怪(例如google.fr被标记为免费!),因此我尝试了一个Windows命令:nslookup yourdomain
,如果已注册,则会返回其IP
。