处理dns_get_record的更好方法

时间:2015-03-30 19:46:33

标签: php dns

dns_get_record

的行为

查询A记录:

  

var_dump(dns_get_record($ host,DNS_A));

array(1) {
  [0]=>
  array(5) {
    ["host"]=>
    string(14) "host.name.tdl"
    ["class"]=>
    string(2) "IN"
    ["ttl"]=>
    int(0)
    ["type"]=>
    string(1) "A"
    ["ip"]=>
    string(12) "192.168.17.2"
  }
}

查询AAAA记录:

  

var_dump(dns_get_record($ host,DNS_AAAA));

PHP Warning:  dns_get_record(): DNS Query failed in file.php on line 4
bool(false)

我觉得有点奇怪的是没有记录返回false而不是空数组但我想这是一种方法。

合并:

  

var_dump(dns_get_record($ host,DNS_A + DNS_AAAA));

PHP Warning:  dns_get_record(): DNS Query failed in file.php on line 4
bool(false)

这是我的问题:有没有更好的方法来查询A和AAAA记录而不进行两次dns_get_record调用?

$ host

的示例值
  • shaunwagner.com
  • digitec.ch

但基本上它是没有IPv6的每个主机。

2 个答案:

答案 0 :(得分:0)

自己测试后,

func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
    let lastElement = data.jsonArray.count - 2
    if indexPath.row == lastElement {
        page += 1
        getFeed()
    }
}

工作得很好,这个方法也提到了:

http://php.net/manual/en/function.dns-get-record.php

答案 1 :(得分:-1)

var_dump(dns_get_record($host, DNS_ANY));
$tmp=array();
foreach(dns_get_record($host, DNS_ANY) as $dns){
    $tmp[$dns['type']]=$dns;
}
var_dump($tmp);

也许