【发布时间】:2017-08-16 04:59:33
【问题描述】:
我正在尝试调试 dns_get_record,因为它没有按预期工作。
我创建了一个文本 DNS 记录“laramon_59939919ec899.glibix.com”。值为“dd678f947384ed8d3531465439ff852e01e6eb1d”
与:
$result=dns_get_record('laramon_59939919ec899.glibix.com.',DNS_TXT);
print_r($result);
我明白了:
Array
(
)
但是有:
$result=dns_get_record('laramon_59939919ec899.glibix.com.',DNS_ANY);
print_r($result);
我明白了:
Array
(
[0] => Array
(
[host] => laramon_59939919ec899.glibix.com
[class] => IN
[ttl] => 86182
[type] => TXT
[txt] => dd678f947384ed8d3531465439ff852e01e6eb1d
[entries] => Array
(
[0] => dd678f947384ed8d3531465439ff852e01e6eb1d
)
)
)
我添加的记录是TXT类型的。有人能帮我理解为什么我在专门寻找 TXT 记录时没有得到正确的记录吗?
【问题讨论】:
-
您可能遇到了 DNS 缓存问题。当我使用
DNS_TXT运行您的代码时,它会提供所需的输出。 -
有什么办法可以刷新这个缓存,或者强制 PHP 不使用缓存的值?我用 Linode 主持
-
我不知道,因为它只是使用主机的DNS设置,你不能告诉上游DNS服务器不要返回缓存结果。 PHP 页面上的这个函数的文档有一些推荐外部实用程序的 cmets,如果你想更好地控制如何处理 DNS 调用。
-
@NickCoons 我注意到 DNS_ALL 可能不会以某种方式被缓存。所以我重写了我的代码以使用 DNS_ALL。感谢您的帮助。
标签: php dns-get-record