查詢

dns_get_record()函式—用法及示例

「 獲取指定域名的 DNS 記錄 」


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

補充糾錯
上一個函式: DocResult::fetchOne()函式
下一個函式: DocResult::getWarnings()函式
熱門PHP函式
分享連結