代码之家  ›  专栏  ›  技术社区  ›  morewry

当我知道有CNAMEs的存在时,为什么不让它出现呢?

  •  1
  • morewry  · 技术社区  · 15 年前

    我正在用PHP玩DNS记录查找,遇到了一些令人困惑的问题。我查找了两个不同的域,每个域使用不同的主机和不同的权威名称服务器。我知道的这两个领域都有CNAME。

    我已使用此在线工具查找DNS记录: http://network-tools.com/

    在这两种情况下,我都可以登录到这些域的DNS控件并查看CNAMES。

    为什么会这样?目标是允许在将客户的域更改为我公司的名称服务器之前查找和保存所有DNS记录(这样我们就不会意外地从外部托管电子邮件设置)。像pop.domain.com这样的域名在这里是相当重要的,但是我找不到的任何一个查询都不会承认它们的存在。

    真正的问题当然是PHP函数没有返回它们,因为这正是我需要它的地方。

    但是我很困惑,我在别处找不到它们。尤其是因为我在可以添加和删除DNS记录的地方看到了它们。这里写着:

    pop.domain.com CNAME pop.secureserver.net 0 900

    (PHP版本5.2.6) Linux 2.6.9-67.0.15.plus.c4smp)

    2 回复  |  直到 15 年前
        1
  •  3
  •   Community CDub    8 年前

    我想我已经找到原因了。我相信这与每个线程的“区域转移”有关 Is it possible to find all DNS subdomains for a given domain name?

    我所期望的是CNAME查找与A、NS、MX具有相同的功能-- 其他一切 . (几乎不是不切实际的期望……)

    dns_get_record("domain.com", DNS_CNAME, $authns_cname, $addtl_cname);
    

    我希望返回一个数组,其中包含为domain.com设置的所有CNAMES。事情不是这样的。

    • 可以 拿回一个CNAME “的条目”www.domain.com“如果是的话
    • 返回的单个CNAME条目 我进去的时候有个名字。
    • 不能 为了保存所有CNAME/子域/三级域的记录,请按字面意思删除所有CNAME记录 对于domain.com,通配符搜索或 不是。

    我想我只需要把问题说对就行了(第15次排列发现了那个有希望的答案)。我假设这两个名称服务器(Dreamhost和我公司的)都受到了“保护”。虽然在我看来,这似乎不是非常敏感的信息相比,其余的DNS记录。

        2
  •  0
  •   Giedrius Tuminauskas    13 年前
    $www = dns_get_record("www.microsoft.com", DNS_CNAME);
      //print_r($www);
      //echo $www[0]['target'];
    while ($www[0]['target']) {
      echo "<br/>-- ".$www[0]['target'];
      $www = dns_get_record($www[0]['target'], DNS_CNAME);
    }