我需要檢查域名使用的是什麼,但無法在PHP中找到正確的解決方案。如何檢查PHP中的域名服務器?
我試過checkdnsrr();
和dns_get_record();
,他們都沒有顯示NS的一些正在工作的域名。 Whois
也不是一個解決方案。
我的目的是過濾域名服務器設置和哪些沒有。有沒有解決方案?
我需要檢查域名使用的是什麼,但無法在PHP中找到正確的解決方案。如何檢查PHP中的域名服務器?
我試過checkdnsrr();
和dns_get_record();
,他們都沒有顯示NS的一些正在工作的域名。 Whois
也不是一個解決方案。
我的目的是過濾域名服務器設置和哪些沒有。有沒有解決方案?
您應該簡單地使用dns_get_record
函數,並且可以選擇通過DNS_NS
作爲第二個參數。
對於使用
var_dump(dns_get_record('zinas.lv', DNS_NS));
您的域zinas.lv
我得到:
陣列(2){[0] =>陣列(5){[ 「宿主」] =>串(8 )「」z「一個字符(2) 」NS「[」target「] =>字符串(2)」IN「[」ttl「] => int(1655) 「] => string(10)」ns1.dns.lv「} [1] => array(5){ [」host「] => string(8)」zinas.lv「[」class「] => string(2)「IN」[「ttl」] => int(1655)[「type」] => string(2)「NS 「[」 目標「] =>串(10) 」ns2.dns.lv「}}
因此可以使用簡單地顯示這些2個DNS:
$dns = dns_get_record('zinas.lv', DNS_NS);
echo $dns[0]['target'].' '.$dns[1]['target'];
謝謝,它適用於zinas.lv域名。如果它返回: 'array(0){ }' 這意味着域名沒有名稱服務器設置? –
@ user3844395可能是的,但你應該使用其他方法檢查它,例如查看'http:// dnscheck.pingdom.com'並確保沒有給出名稱服務器。但據我所知,幾乎所有的域名(所有甚至更多)需要設置NS記錄,如果它們是活動的 –
有大約150k域名,我不能手動檢查它們,所以我正在尋找自動化解決方案。我希望它現在可以工作。 也許有可能檢查公共DNS上的域NS記錄?例如'谷歌8.8.8.8'或'OpenDNS'? –
'dns_get_record($主機, DNS_NS);'是唯一的方法。如果在該函數的返回值中缺少名稱服務器條目,則調用其運行的服務器PHP正在與之通話的DNS服務器很可能不是最新的。如果您在一家擁有自己的DNS服務器的公司中進行緩存條目或進行非定期更新,則情況可能如此。 – TiMESPLiNTER
您應該提供'dns_get_record'不起作用的示例域 –
dns_get_record('zinas.lv');不工作zinas.lv域 –