2010-08-05 19 views
1

checkdnsrr只適用於.com域名?php checkdnsrr函數只適用於dotcom域名?

如果我使用live.com(或任何現有的dotcom),checkdnsrr返回值1(TRUE),但它總是爲現有的dot net/org返回一個空字符串。檢查是否適用於A或MX或NS ...記錄並不重要。語法是正確還是其他?

<?php 
$dom ="live.net"; 
$check = checkdnsrr($dom,'NS'); 
echo "live $check test "; 
?> 

TIA

+0

該功能不限於.com域 - 沒有這樣的功能(或應該)。請舉例說明它不起作用的例子,以便人們可以嘗試重現。 – 2010-08-05 18:22:15

+0

如果你設置$ dom =「live.net」; 如果$ dom =「live.com」,echo語句將打印「實時測試」,而不是「實時測試」。 – Jamex 2010-08-05 22:04:04

+0

它適用於任何域,但建議在域名末尾附加句點(。)。試試 – Jeffrey 2013-01-01 20:45:42

回答

2

checkdnsrr()根本不返回一個字符串,它是一個BOOL函數,所以是true/false。直接打印布爾是不好的做法,因爲FALSE不會變成0TRUE變成1的方式。它被投入一個空的字符串,因此是不可見的。

至少改變你的支票存入類似:

echo "$dom test: " . ($check ? 'TRUE' : 'FALSE'); 

,並得到適當的「真」 /「假」文本輸出。

這就是說,live.com和live.net在這裏都可以很好地解決各種DNS記錄類型。我建議在你測試這個服務器的服務器上使用'hostnslookup或,看看他們得到的迴應。 PHP應該使用與那些工具相同的解析器。

+0

感謝Marc,我知道這是一個布爾函數,但我認爲我的網絡連接有一些無法解釋的事情發生。有趣的是,dotcom是唯一適合我的tld。感謝您的確認。 – Jamex 2010-08-05 22:32:13

0

的代碼,你對我來說(TM)粘貼作品。

檢查您的系統DNS設置。

+0

你確定它顯示「實況1測試」而不是「實況測試」嗎? – Jamex 2010-08-05 22:05:31