来自getmxrr()和checkdnsrr()的错误返回值

时间:2013-02-18 12:52:01

标签: php dns

getmxrr($url, &$mxHosts)州的php manual

  

如果找到任何记录,则返回TRUE;如果未找到任何记录或发生错误,则返回FALSE。

但对于某些域名(例如 www.yahoo.com,example.com.com ),它只返回 true 但返回参数$mxHosts为空。两个域都没有MX记录。 checkdnsrr()也会返回 true

我比较了这些域的DNS条目,并注意到它们都有一个CNAME条目,而我测试的其他域和功能正常工作的域没有它。

为什么getmxrr()checkdnsrr()会给出错误的结果值?这与CNAME有什么关系吗?

1 个答案:

答案 0 :(得分:1)

<?php
getmxrr ('yahoo.com', $out);
print_r($out);

$a = checkdnsrr('yahoo.com', 'MX');
var_dump($a);

Array
(
    [0] => mta7.am0.yahoodns.net
    [1] => mta5.am0.yahoodns.net
    [2] => mta6.am0.yahoodns.net
)
bool(true)

你说得对,你必须输入没有任何www的域名。

<?php
getmxrr ('www.yahoo.com', $out);
print_r($out);

Array
(
)
bool(true)