PHP的dns_get_record返回子域记录而不是域记录

时间:2017-06-12 08:36:36

标签: php

当我使用 dns_get_record 来存放像google.com这样的域名时,一切正常,但如果我在不存在的域名上使用它,该功能会获得来自我们域名的子域名的信息,例如test.example.com,我该如何阻止?

// Test with working domain
var_dump( dns_get_record('google.com', DNS_A) );
/* works, returns
Array
(
    [host] => google.com
    [class] => IN
    [ttl] => 299
    [type] => A
    [ip] => 172.217.12.142
)
*/

// Test with invalid domain on our website (example.com)
var_dump( dns_get_record('invalidtestingname.com', DNS_A) );
/* Doesn't work, pretend it's a subdomain
Array
(
    [host] => invalidtestingname.com.example.com
    [class] => IN
    [ttl] => 299
    [type] => A
    [ip] => xxx.xxx.xxx.xxx
)
*/

1 个答案:

答案 0 :(得分:2)

如果有人遇到此问题,请在域名末尾添加“点”,而不是

dns_get_record('invalidtestingname.com', DNS_A);

这样做:

dns_get_record('invalidtestingname.com.', DNS_A);

然后PHP不会尝试检查您自己域的子域,它将正确搜索。不知道之前怎么没有人遇到过这个问题,在php.net上甚至没有任何关于这个的评论

相关问题