當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


PHP dns_get_record()用法及代碼示例


dns_get_record()函數是PHP中的內置函數,它返回指定Internet主機名的DNS資源記錄。

用法:

dns_get_record($host, $type, $authoritative, $additional, $raw);

參數:該函數接受上述和以下所述的五個參數:


  • $host:必填參數。它指定要查找其DNS資源記錄的主機名。
  • $type:這是一個可選參數。它指定要搜索的DNS記錄的類型。可能的值為
    • DNS_A
    • DNS_CNAME
    • DNS_HINFO
    • DNS_CAA
    • DNS_MX
    • DNS_NS
    • DNS_PTR
    • DNS_SOA
    • DNS_TXT
    • DNS_AAAA
    • DNS_SRV
    • DNS_NAPTR
    • DNS_A6
    • DNS_ALL
    • DNS_ANY(默認)
  • $authoritative:它是一個可選參數。它通過引用傳遞,並且將設置權威名稱服務器的資源記錄(如果已設置)。
  • $additional:它是一個可選參數。它通過引用傳遞,如果設置了任何附加記錄,它將被填充。
  • $raw:它是一個可選參數。布爾參數。如果設置為TRUE,則在獲取信息之前,不查詢type-by-type,而是僅查詢所請求的類型。 FALSE是默認值。

返回值:

  • 它返回一個關聯數組的數組,失敗則返回FALSE。每個數組包含以下鍵(至少):
    • 主辦:主機名
    • 類:此函數僅返回Internet類記錄,因此始終返回IN
    • 類型:記錄類型
    • ttl:該記錄剩餘的“Time To Live”(以原始ttl減去
      自查詢服務器以來經過的時間長度)

注意:此函數可用於PHP 5.0.0和更高版本。

範例1:

<?php 
print_r(dns_get_record("geeksforgeeks.org", DNS_MX)); 
?>

輸出:

Array ( [0] => Array ( [host] => geeksforgeeks.org [class] => IN [ttl] => 299 [type] => MX [pri] => 1 [target] => aspmx.l.google.com ) [1] => Array ( [host] => geeksforgeeks.org [class] => IN [ttl] => 299 [type] => MX [pri] => 10 [target] => alt3.aspmx.l.google.com ) [2] => Array ( [host] => geeksforgeeks.org [class] => IN [ttl] => 299 [type] => MX [pri] => 10 [target] => alt4.aspmx.l.google.com ) [3] => Array ( [host] => geeksforgeeks.org [class] => IN [ttl] => 299 [type] => MX [pri] => 5 [target] => alt1.aspmx.l.google.com ) [4] => Array ( [host] => geeksforgeeks.org [class] => IN [ttl] => 299 [type] => MX [pri] => 5 [target] => alt2.aspmx.l.google.com ) )

範例2:係統輸出

<?php 
$res=dns_get_record("geeksforgeeks.org", DNS_MX); 
foreach($res as $ar){ 
  
    foreach($ar as $key=>$val){ 
            echo $key.":".$val."</br>"; 
    } 
    echo "</br>"; 
} 
  
?>

輸出:

範例3:$type的所有可能值

<?php 
$domain="geeksforgeeks.org"; 
single_type_dns_get_record($domain, DNS_A); 
single_type_dns_get_record($domain, DNS_CNAME); 
single_type_dns_get_record($domain, DNS_HINFO); 
single_type_dns_get_record($domain, DNS_CAA); 
single_type_dns_get_record($domain, DNS_MX); 
single_type_dns_get_record($domain, DNS_NS); 
single_type_dns_get_record($domain, DNS_PTR); 
single_type_dns_get_record($domain, DNS_SOA); 
single_type_dns_get_record($domain, DNS_TXT); 
single_type_dns_get_record($domain, DNS_AAAA); 
single_type_dns_get_record($domain, DNS_SRV); 
single_type_dns_get_record($domain, DNS_NAPTR); 
single_type_dns_get_record($domain, DNS_A6); 
single_type_dns_get_record($domain, DNS_ALL); 
single_type_dns_get_record($domain, DNS_ANY); 
  
function single_type_dns_get_record($domain, $type){ 
    echo "-------------<br>".$type."<br>-------------<br>"; 
    $res=dns_get_record($domain, $type); 
    foreach($res as $ar){ 
        foreach($ar as $key=>$val){ 
                echo $key.":".$val."</br>"; 
        } 
        echo "</br>"; 
    } 
} 
  
?>

輸出:

參考: https://www.php.net/manual/en/function.dns-get-record.php



相關用法


注:本文由純淨天空篩選整理自gekcho大神的英文原創作品 PHP | dns_get_record() function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。