【问题标题】:Check if domain have record CNAME and point to my server检查域是否有记录 CNAME 并指向我的服务器
【发布时间】:2021-09-21 19:03:29
【问题描述】:

我需要检查我的用户是否正确添加了 CNAME 记录,但使用此代码我得到空数组

<?php

$domain="martinashop.club";
if(checkdnsrr($domain,"CNAME")) {
  echo "Passed";
} else {
  echo "Failed";
}
echo "<br>";

print_r(dns_get_record($domain,DNS_CNAME));
echo "<br>";
print_r(dns_check_record($domain,"CNAME"));
?>

我不明白为什么不获取记录 我使用 Clouflare 的域可能会出错?

谢谢

【问题讨论】:

  • 我没有看到该域的任何 CNAME 记录,因此是空数组。如果您使用 DNS_ANY,您将获得它的 A 记录。
  • 嗨,我有 CNAME 用于子域 start.martinashop.club 和 A 用于主域 (@) 到我的服务器 IP,但我需要知道 start.martinashop.club 是否指向我的目的地我认为我可以从主域恢复我也尝试过 $domain="start.martinashop.club"; ma 数组始终为空
  • 我在使用 start.martinashop.club 时得到了正确的响应,这是一个具有单个响应的数组。如果您没有收到,则说明您的本地 DNS 没有更新,或者它被阻止了。
  • 使用子域工作,但前提是没有来自 cloudflare 的代理
  • 如果它们被代理,则不会,因为流量将首先通过 Cloudflare。 CNAME 变得对外界不可见。这适用于 Cloudflare 中的任何代理 DNS 记录。

标签: php dns record cloudflare


【解决方案1】:

您不能在裸域上使用 CNAME。

CNAME 只能作为单个记录存在,不能与任何其他资源记录组合。由于域始终具有 SOA 和 NS 记录,因此您不能对域使用 CNAME。这在RFC 1034,第 3.6.2 节中指定。

【讨论】:

  • 嗨@justin 我有 CNAME 用于子域 start.martinashop.club 和主域 (@) 到我的服务器 IP 但我需要知道 start.martinashop.club 是否指向我认为的目的地我可以从主域恢复我也尝试过 $domain="start.martinashop.club"; ma 数组始终为空
  • 使用子域工作,但前提是没有来自 cloudflare 的代理
猜你喜欢
  • 2022-01-26
  • 2020-12-15
  • 2013-06-27
  • 1970-01-01
  • 2018-05-15
  • 2020-06-23
  • 2021-03-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多