簡體   English   中英

如何在 PHP 中回顯像 nslookup 這樣的 SOA 記錄?

[英]How to echo SOA record like nslookup in PHP?

https://i.imgur.com/IQtyy2e.png

我的目標是找到像這樣的任何 HTTP 主機后面的當前名稱服務器。

<?php
$resolver = array( '1.1.1.1' );
$domain = 'community.cloudflare.com.';
$report = dns_get_record( $domain, DNS_SOA, $resolver );

print_r( $report );

?>

印刷

Array
(
)

雖然它適用於 google.co.uk

知道如何使用 PHP 本機 function 獲取 SOA 報告嗎?

如果這不起作用,那么我有最后一個選項使用 1.1.1.1 API,如果不嘗試第一個 PHP 方式,我不想這樣做。

在這種情況下,子域community.cloudflare.com(.)是區域cloudflare.com. 由於community.cloudflare.com(.)不是一個區域(即使它可能是),所以它沒有 SOA 或 NS 記錄。

您需要做的是從不太具體的區域獲取 SOA 記錄或 NS 記錄,即cloudflare.com. 在這種情況下:

代碼

$domain = 'cloudflare.com.';
$report = \dns_get_record($domain, \DNS_NS);
\print_r($report);

回復

Array
(
    [0] => Array
        (
            [host] => cloudflare.com
            [class] => IN
            [ttl] => 21052
            [type] => NS
            [target] => ns3.cloudflare.com
        )

    [1] => Array
        (
            [host] => cloudflare.com
            [class] => IN
            [ttl] => 21052
            [type] => NS
            [target] => ns4.cloudflare.com
        )

    [2] => Array
        (
            [host] => cloudflare.com
            [class] => IN
            [ttl] => 21052
            [type] => NS
            [target] => ns5.cloudflare.com
        )

    [3] => Array
        (
            [host] => cloudflare.com
            [class] => IN
            [ttl] => 21052
            [type] => NS
            [target] => ns6.cloudflare.com
        )

    [4] => Array
        (
            [host] => cloudflare.com
            [class] => IN
            [ttl] => 21052
            [type] => NS
            [target] => ns7.cloudflare.com
        )

)

接近我正在尋找的東西

    $host = 'community.cloudflare.com';
    
    $api = "https://cloudflare-dns.com/dns-query?name=$host&type=NS";
    
    
    
                $response = wp_remote_get( $api, array(
                'timeout' => 3,
                'redirection' => 0,
                'headers' => array( "Accept" => "application/dns-json" ),
                ));
    
                $response = wp_remote_retrieve_body( $response );
                $response = json_decode( $response, true );
    
echo '<pre>';
print_r( $response );
echo '</pre>';

Output

Array
(
    [Status] => 0
    [TC] => 
    [RD] => 1
    [RA] => 1
    [AD] => 1
    [CD] => 
    [Question] => Array
        (
            [0] => Array
                (
                    [name] => community.cloudflare.com
                    [type] => 2
                )

        )

    [Authority] => Array
        (
            [0] => Array
                (
                    [name] => cloudflare.com
                    [type] => 6
                    [TTL] => 93
                    [data] => ns3.cloudflare.com. dns.cloudflare.com. 2036594323 10000 2400 604800 300
                )

        )

)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM