函数名称:dns_get_record()
适用版本:PHP 4, PHP 5, PHP 7
函数用途:dns_get_record() 函数用于获取指定域名的 DNS 记录。它可以返回一个数组,包含了指定域名的各种类型的 DNS 记录,如 A、MX、CNAME、NS等。
语法:dns_get_record(string $hostname [, int $type = DNS_ANY [, array &$authns [, array &$addtl [, bool &$raw = FALSE ]]]]) : array|false
参数解析:
$hostname
:必需。指定的域名,例如"example.com"。$type
:可选。指定要获取的 DNS 记录类型,默认为DNS_ANY
,可以是下面这些常量之一:DNS_A
(IPv4 地址记录),DNS_CNAME
(别名记录),DNS_HINFO
(主机信息记录),DNS_MX
(邮件交换记录),DNS_NS
(域名服务器记录),DNS_PTR
(反向 IP 查找记录),DNS_SOA
(权威查询记录 SOA),DNS_TXT
(文本记录)。此外,还有一些其他的 DNS 记录类型,可以参考官方文档。$authns
:可选。如果函数成功执行,将该参数填充为权威 DNS 服务器的名称。$addtl
:可选。如果函数成功执行,将该参数填充为附加的 DNS 服务器信息。$raw
:可选。如果指定为TRUE
,则函数返回的 DNS 记录为原始形式。
返回值:返回一个包含指定域名的各种类型的 DNS 记录的数组,如果解析失败,则返回FALSE
。
示例:
$hostname = "example.com";
$recordA = dns_get_record($hostname, DNS_A);
$recordMX = dns_get_record($hostname, DNS_MX);
$recordNS = dns_get_record($hostname, DNS_NS);
$recordCNAME = dns_get_record($hostname, DNS_CNAME);
var_dump($recordA);
var_dump($recordMX);
var_dump($recordNS);
var_dump($recordCNAME);
输出示例:
array(2) {
[0]=>
array(5) {
["host"]=>
string(11) "example.com"
["type"]=>
string(1) "A"
["ip"]=>
string(13) "93.184.216.34"
["class"]=>
string(2) "IN"
["ttl"]=>
int(359)
}
// ...
}
array(1) {
[0]=>
array(5) {
["host"]=>
string(11) "example.com"
["type"]=>
string(2) "MX"
["pri"]=>
int(10)
["target"]=>
string(8) "mail2go."
["class"]=>
string(2) "IN"
}
}
array(2) {
[0]=>
array(5) {
["host"]=>
string(11) "example.com"
["type"]=>
string(2) "NS"
["target"]=>
string(12) "a.iana-sns."
["class"]=>
string(2) "IN"
["ttl"]=>
int(172858)
}
// ...
}
array(1) {
[0]=>
array(5) {
["host"]=>
string(11) "example.com"
["type"]=>
string(5) "CNAME"
["target"]=>
string(7) "example"
["class"]=>
string(2) "IN"
["ttl"]=>
int(86400)
}
}
以上示例展示了使用dns_get_record()
函数获取指定域名"example.com"的A、MX、NS和CNAME记录的用法。根据不同的记录类型,返回的数组中包含不同的字段信息,如主机名、类型、IP地址、优先级等。