为什么我在检查DNS时会得到这样的随机结果?

时间:2010-04-07 04:38:07

标签: php dns boolean

代码如下:

$domain = "fosajfjdkgdajfhsd.com";
$check1 = checkdnsrr($domain, "MX");
$check2 = checkdnsrr($domain, "A");
$check3 = (checkdnsrr($domain, "MX") || checkdnsrr($domain, "A"));
$check4 = !(checkdnsrr($domain, "MX") || checkdnsrr($domain, "A"));
die("{$check1} - {$check2} - {$check3} - {$check4}");

然而,当我检查输出以查看它返回的内容时,我得到了这个:

 - 1 - 1 - 

域显然不存在,所以我不明白为什么检查A记录返回true并且检查MX结果根本不给我任何东西。我不明白这里出了什么问题。

2 个答案:

答案 0 :(得分:2)

$ dig fosajfjdkgdajfhsd.com

; <<>> DiG 9.6.0-APPLE-P2 <<>> fosajfjdkgdajfhsd.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39121
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;fosajfjdkgdajfhsd.com.     IN  A

;; ANSWER SECTION:
fosajfjdkgdajfhsd.com.  0   IN  A   208.69.32.132

;; Query time: 121 msec
;; SERVER: 208.67.222.222#53(208.67.222.222)
;; WHEN: Wed Apr  7 00:59:59 2010
;; MSG SIZE  rcvd: 55

编辑:检查您的DNS提供商。如今,他们中的很多人都会返回自己的A记录,这样如果域名无法解析,他们就可以将广告放在你面前。打破DNS,但支付账单。

答案 1 :(得分:1)

好的,所以在浏览了checkdnsrr()的PHP.net文档中的所有示例后,我发现对于A记录,您仍然需要附加一个'。'。到域的末尾,以便有效地检查它。我认为PHP会自动为你做这样的事情,但无论什么工作。结果现在正如预期的那样。