【问题标题】:Most efficient way to programmatically determine if a web domain is available?以编程方式确定 Web 域是否可用的最有效方法?
【发布时间】:2010-09-11 12:39:11
【问题描述】:

我正在编写一些代码来确定网络域是否已注册。例如,我想检查“Google123.com”是否可用。我至少可以通过两种方式以编程方式执行此操作,但我不确定哪种方式更有效:

  • A) 在 linux/cygwin 中,我可以启动 whois 命令查看域是否是 正在使用。
  • B) 在 linux/windows 中,我可以 启动 nslookup 命令以查看是否有 域是可解析的。

我的问题是:

  1. nslookup 真的是检查注册的有效方法吗?每个注册的域是否都有名称服务器并显示在 DNS 中?
  2. 进行此注册检查的最快方法是什么?有什么提示或其他方法吗?

【问题讨论】:

    标签: network-protocols whois nslookup


    【解决方案1】:

    关于#1,不。没有要求注册的域实际上具有 DNS。

    【讨论】:

      【解决方案2】:

      nslookup 会访问您系统设置中的 dns 服务器。它可能落后于时代,也可能没有任何 dns 条目。我认为最好的方法是与 whois.internic.net 端口 43(whois 端口)建立一个 tcp 连接,传递您要检查的名称,然后您应该得到一个让您知道的响应。如果它不存在,您将收到类似 No match for "domainyourchecking.com"

      的响应

      【讨论】:

      • 但该方法仅在最后显示一条消息:“注册表数据库仅包含 .COM、.NET、.EDU 域和注册商。”
      【解决方案3】:

      有传言说,一些允许您搜索域名的网站实际上是域名投机者的前线,他们会在您搜索域名后立即购买,然后尝试将其出售给您。我从来没有遇到过这样的骗局,但您可能想在新网站上尝试一些垃圾域搜索,然后再搜索您梦寐以求的域名。

      【讨论】:

      • 或者您可以使用信誉良好的注册商;我从来没有遇到过 namecheap.com 这样做的任何问题。
      • 即使他们收集有关热门域名搜索想法的信息,然后相应地为优质域名定价。
      【解决方案4】:

      whois 的问题是没有来自不同 tld 的一致响应。

      因此,如果您只是在寻找 .com 或其他一些特定的顶级域名,那就没问题了。如果您开始查看各种 ccTld 或其他 gTld,您可能会在逻辑中发现很多特殊的大小写,试图找出 whois 命令返回的数据中“可用”的含义。

      Whois 总是向 shell 返回成功,即使域可用。 :(

      【讨论】:

        【解决方案5】:

        这会给你一个快速的是/否,但如果你认为它是免费的,并且你想要它,尝试注册它,你可能会发现它已经被占用了。

        【讨论】:

          【解决方案6】:

          system("whois $域名");

          【讨论】:

          • 我很确定 OP 已经知道 如何 做到这一点。问题是这是否是一个好方法。
          • 是的,我应该在深入回答之前完整阅读这个问题。
          • 无论您使用哪种语言,使用 whois 命令总是一个非常糟糕的主意,因为您应该使用可用的特定 whois 库,或者在它的底部打开一个 TCP 套接字端口 43 并读取 RFC3912
          猜你喜欢
          • 2011-01-16
          • 1970-01-01
          • 2016-04-21
          • 1970-01-01
          • 2015-10-14
          • 2019-01-29
          • 1970-01-01
          • 2011-05-30
          • 2011-09-23
          相关资源
          最近更新 更多