使用DNS记录检查域名可用性

使用DNS记录检查域名可用性,dns,whois,nameservers,Dns,Whois,Nameservers,通过检查NS或SOA(授权开始)记录的存在,可以准确地确定域名的可用性 如果不是,我如何才能在不诉诸WHOIS的情况下尽可能准确地确定这一点?例如,如果不存在NS记录,是否值得检查MX记录 我对.co.za域特别感兴趣,但是检查.co.za命名空间中可用性的唯一官方、傻瓜式的方法是使用,这限制了按IP地址进行连续检查。Whois是检查域可用性的标准方法。速率限制是为了防止人们超载whois服务器。SOA记录的存在可能是一个很好的猜测,但这不是一个确定的答案。在实践中,DNS查找99%的时间有效。

通过检查NSSOA(授权开始)记录的存在,可以准确地确定域名的可用性

如果不是,我如何才能在不诉诸WHOIS的情况下尽可能准确地确定这一点?例如,如果不存在NS记录,是否值得检查MX记录


我对.co.za域特别感兴趣,但是检查.co.za命名空间中可用性的唯一官方、傻瓜式的方法是使用,这限制了按IP地址进行连续检查。

Whois是检查域可用性的标准方法。速率限制是为了防止人们超载whois服务器。SOA记录的存在可能是一个很好的猜测,但这不是一个确定的答案。

在实践中,DNS查找99%的时间有效。如果你写这样的东西,我建议你走这条路。如果你有一百万个名字要检查,我会做一个第一次通过DNS查找,然后可能做一个第二次传递的那些你可以考虑购买。 检查域可用性的唯一100%可靠方法是查询注册器的数据库。我不相信是谁

您可以使用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记录表明域名正在使用中

直接查询的原因是,它通常比依赖本地名称服务器的递归查询快得多。

  • 谁是唯一100%确定的方法 正在检查.co.za域 可利用性看见
  • 我的测试表明,检查NS的存在 批量记录或任何DNS记录 似乎是最准确的方法 猜测.co.za域是否可用于注册SOA记录也起作用,但效果不一样
  • digco.za。NS
    shows.co.za TLD 名称服务器。Ping TLD服务器并使用最近的 避免不必要的递归 查询

感谢您的回答。

我在注册前也一直在使用dig方法测试域的存在性,但大约有10%的时间,它会返回不可用的域。这是因为域的所有者尚未为域设置任何记录。所以我决定做的是:

  • 首先通过挖掘方法进行检查
  • 如果域似乎可用,则使用whois.shtml进行检查

  • 人们将经历一系列不可用的域,这不会浪费UniForum提供的分配请求。只有当某些东西看起来可用时,才检查co.za本身。在我看来,这似乎是唯一可靠的方法来做到这一点,而不会因为向co.za/whois.shtml发送一百万个请求而失去访问权:)

    确定域是否可用的唯一方法是查询该域的注册表数据库。通常,您可以通过在注册表WHOIS接口上执行WHOIS查询来实现这一点

    有几个原因可以解释DNS检查不安全的原因

    最简单的解释是,您可以注册一个域,而无需将其指向任何位置。它就像一座房子。你可以买一栋房子,但你不会被迫修路去

    大多数可用的域提供程序都会强制您指向DNS,否则会设置默认DNS。但你不是被迫的,这不是一种强制性的领域要求

    第二个原因是,实际上存在域已注册但不可用的情况。这种情况之一就是通常称为赎回期的时期。此期限在域过期且当前所有者不续订域后持续数天。几个注册中心禁用了该域,这意味着不再可以通过DNS访问该域,但该域仍然存在,并且只能由原始所有者赎回(通常)


    DNS检查很便宜,有时速度更快。如果需要检查域是否存在,则可以首先尝试DNS查询,如果失败,则返回WHOIS查询。换句话说,如果DNS查询成功,WHOIS查询几乎毫无意义。但是你不能做相反的事情,因为如果DNS查询失败,并不意味着域名没有注册

    尝试了whois,它会给我奇怪的结果(google.fr是免费的!)因此,我尝试了一个Windows命令:
    nslookup yourdomain
    ,如果它已注册,您将获得它的
    IP

    如果您计划进行批量检查,您将很快对内置DNS解析程序感到失望-它是同步的。有一个非常可爱的库,名为ADNS(),它提供异步DNS查询。它附带了一个小的命令行工具
    adnshost
    ,我将它与N-DJBDNS()结合使用,作为递归解析器

    确切的参数是
    adnshost-a-tns-f

    输出中的第4列将包含结果代码:

    • 如果为域分配了至少1个名称服务器,则为0(大多数注册者分配默认名称服务器,直到所有者分配自己的名称服务器)
    • 300或301,如果没有指定名称服务器

    检查1.2M域名大约需要4-6个小时,但这将随网络速度/拥塞而变化。

    仅仅因为DNS名称无法解析,并不意味着它尚未注册