12

通过检查NSSOA(授权开始)记录的存在来确定域名的可用性有多准确?

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

我对.co.za域特别感兴趣,但在 .co.za 命名空间中检查可用性的唯一官方、万无一失的方法是使用http://co.za/whois.shtml,这限制了连续检查IP地址。

4

8 回答 8

12

检查域可用性的唯一 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 记录表明该域名正在使用中。

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

于 2009-11-23T01:29:34.967 回答
6

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

有几个原因可以解释为什么 DNS 检查不安全。

最简单的解释是因为您可以注册域而无需将其指向任何位置。这就像一个房子。你可以买房子,但你不必修路才能到达。

大多数可用的域提供商会强制您指向 DNS,否则他们会设置默认值。但是您不是被迫的,这不是一种强制性的域要求。

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

DNS 检查很便宜,有时速度更快。如果您需要检查域是否存在,则可以先尝试 DNS 查询,如果失败,则回退到 WHOIS 查询。换句话说,如果 DNS 查询成功,WHOIS 查询几乎毫无意义。但是您不能反其道而行之,因为如果 DNS 查询失败,并不意味着该域未注册

于 2011-08-25T08:34:44.650 回答
2

如果您打算进行批量检查,您很快就会对内置的 DNS 解析器感到失望——它是同步的。有一个漂亮可爱的库,叫做 ADNS ( http://www.gnu.org/software/adns/ ),它提供异步 DNS 查询。它附带一个小型命令行工具adnshost,我将它与 N-DJBDNS ( http://pjp.dgplug.org/ndjbdns/ ) 结合使用作为递归解析器。

确切的论据是adnshost -a -tns -f

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

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

检查 120 万个域名大约需要 4-6 小时,但这会因网络速度/拥塞而异。

于 2019-03-07T12:28:23.770 回答
1

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

于 2009-11-23T00:51:03.183 回答
1

实际上,DNS 查找在 99% 的时间内都有效。如果你写类似Ajaxwhois的东西,我建议你走这条路。如果你有一百万个名字要检查,我会先通过 DNS 查找,然后再对你可能考虑购买的名字做第二遍。

于 2009-11-23T01:26:02.100 回答
0
  • Whois 是唯一 100% 确定的检查 .co.za 域可用性的方法。见 http://co.za/whois.shtml
  • 我的测试表明,批量检查NS 记录或任何 DNS 记录的存在似乎是猜测 .co.za 域是否可用于注册的最准确方法。SOA 记录也有效,但效果不佳。
  • dig co.za. NS显示 .co.za TLD 域名服务器。Ping TLD 服务器并使用最近的服务器来避免不必要的递归查询。

感谢您的回答。

于 2009-11-24T01:07:45.620 回答
0

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

  1. 首先通过 dig 方法检查。
  2. 如果域似乎可用,则使用 whois.shtml 检查

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

于 2011-02-16T11:17:32.400 回答
-1

尝试了 whois,它给了我奇怪的结果(google.fr 免费!)所以我尝试了一个 Windows 命令:如果它被注册nslookup yourdomain,你会得到它。IP

于 2015-04-06T02:07:47.937 回答