详细讲一下dns_get_record 的用法比如可以查询那些记录等
dns_get_record() 函数可以用来查询 DNS 记录。它的语法如下:
dns_get_record(string $hostname, int $type = DNS_ANY, array &$authns = null, array &$addtl = null, bool &$raw = false): array|false
该函数接受以下参数:
$hostname: 要查询的主机名。$type: 可选参数,指定要查询的记录类型。默认为DNS_ANY,表示查询所有记录类型。其他可选值包括DNS_A(IPv4 地址记录),DNS_AAAA(IPv6 地址记录),DNS_CNAME(别名记录),DNS_MX(邮件交换记录),DNS_NS(域名服务器记录),DNS_PTR(反向 DNS 查询记录),DNS_SOA(域名授权记录),以及其他一些记录类型。$authns: 可选参数,用来返回授权 DNS 服务器的信息。$addtl: 可选参数,用来返回额外的 DNS 记录信息。$raw: 可选参数,用来指定是否返回未解析的 DNS 记录。默认为false。
该函数返回一个由 DNS 记录组成的数组,每个记录都是一个关联数组,包含以下字段:
host: 记录的主机名。class: 记录的类别。ttl: 记录的生存时间。type: 记录的类型。ip: 记录的 IP 地址 (仅适用于DNS_A和DNS_AAAA记录)。target: 记录的目标主机名 (适用于DNS_CNAME,DNS_MX,DNS_NS,DNS_PTR,DNS_SOA记录)。pri: 记录的优先级 (适用于DNS_MX记录)。rname: 记录的负责人邮箱 (适用于DNS_SOA记录)。serial: 记录的序号 (适用于DNS_SOA记录)。refresh: 记录的刷新时间 (适用于DNS_SOA记录)。retry: 记录的重试时间 (适用于DNS_SOA记录)。expire: 记录的失效时间 (适用于DNS_SOA记录)。minimum-ttl: 记录的最小生存时间 (适用于DNS_SOA记录)。
如果查询失败,则该函数返回 false。
下面是一些示例:
// 查询 example.com 的 A 记录
$result = dns_get_record('example.com', DNS_A);
print_r($result);
// 查询 example.com 的 MX 记录
$result = dns_get_record('example.com', DNS_MX);
print_r($result);
// 查询 example.com 的 NS 记录
$result = dns_get_record('example.com', DNS_NS);
print_r($result);
// 查询 8.8.8.8 的 PTR 记录
$result = dns_get_record('8.8.8.8', DNS_PTR);
print_r($result);
注意,如果 $raw 参数设置为 true,则返回的记录可能包含未解析的数据,例如下面的示例:
$result = dns_get_record('example.com', DNS_A, $authns, $addtl, true);
print_r($result);
输出结果:
Array
(
[0] => Array
(
[host] => example.com
[class] => IN
[ttl] => 3599
[type] => A
[ip] => 93.184.216.34
[raw] => "\x06example\x03com\x00\x00\x01\x00\x01\x00\x00)\x10\x00\x00\x00\x00\x00\x00\x00"
)
)
可以看到,$raw 参数返回了未解析的数据。
原文地址: https://www.cveoy.top/t/topic/B6r 著作权归作者所有。请勿转载和采集!