函式名稱: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地址、優先順序等。
熱門工具排行榜