我正在尝试为我正在构建的服务做一些DNS ping操作。checkdnsrr总是返回True
该业务之一是检查CNAME & /或通过一个URL的A记录,并返回布尔值
虽然看起来工作良好的有效网址的,无效的(是的,我” VE检查),但它仍然是返回true
代码
// 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());
}
}
我在做什么错?
p.s.我的服务器DNS设置从我的路由器中检索,该路由器使用我的ISP的DNS服务器。这个问题仍然是即使我尝试使用谷歌的和OpenDNS的
我甚至得到有效的响应返回从dns_get_record
检查
通过上面的功能,我得到:
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
)
)
bool(true)
返回测试DoDNSCheck('http://www.sadfsdffoijoiuyiuoinsdf.com');
您正在将'$ Address'传递给'GetHost()',但您使用并未定义'$ URL'。也许不是问题,但仍然。 – AbraCadaver
它看起来像您的ISP有一个DNS代理,将所有失败的查找重定向到搜索引擎。 – Barmar
这些地址去search.charter.net – Barmar