Php checkdnsrr始终返回True

Php checkdnsrr始终返回True,php,dns,Php,Dns,我正在尝试为我正在构建的服务执行一些DNS ping 服务之一是检查CNAME和/或a记录中传递的URL,并返回布尔值 虽然它对于有效的URL和无效的(是的,我已经检查过了)都很有效,但它仍然返回TRUE 代码 bool(真) 从测试返回DodnCheck('http://www.sadfsdffoijoiuyiuoinsdf.com');此行错误: 您使用了错误的变量$URL,逻辑是反向的。它应该是:您正在将$Address传递给GetHost(),但您正在使用且未定义$URL。也许不是问题,

我正在尝试为我正在构建的服务执行一些DNS ping

服务之一是检查CNAME和/或a记录中传递的URL,并返回布尔值

虽然它对于有效的URL和无效的(是的,我已经检查过了)都很有效,但它仍然返回TRUE

代码
bool(真)

从测试返回
DodnCheck('http://www.sadfsdffoijoiuyiuoinsdf.com');

此行错误:


您使用了错误的变量
$URL
,逻辑是反向的。它应该是:

您正在将
$Address
传递给
GetHost()
,但您正在使用且未定义
$URL
。也许不是问题,但仍然是。看起来你的ISP有一个DNS代理,它将所有失败的查找重定向到搜索引擎。这些地址转到search.charter.net。你可以随时禁用它。我是猴子的叔叔。一旦其他用户也使用此服务,我是否会遇到此问题?你能更新你的答案吗。。。
    // Check DNS records
    private function DoDNSCheck($url){
        $url = $this->GetHost($url);
        echo '<pre>';
        $tr = dns_get_record($url, DNS_A + DNS_CNAME);
        print_r($tr);
        echo '</pre>';
        return (bool)(checkdnsrr($url, "CNAME") || checkdnsrr($url, "A"));  
    }
    private function GetHost($url){
        try{
            $parseUrl = parse_url(trim($url)); 
            return trim($parseUrl['host']);
        } catch(Exception $e) {
            var_dump($e->getMessage());
        }
    }
Array
(
[0] => Array
    (
        [host] => www.sadfsdffoijoiuyiuoinsdf.com
        [class] => IN
        [ttl] => 10
        [type] => A
        [ip] => 69.16.143.25
    )

[1] => Array
    (
        [host] => www.sadfsdffoijoiuyiuoinsdf.com
        [class] => IN
        [ttl] => 10
        [type] => A
        [ip] => 198.105.251.24
    )

)
$Address = ((strpos($URL, "http://") !== false) || (strpos($URL, "https://") !== false)) ? 'http://' . $Address :  $Address;