函式名稱: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地址、優先順序等。