dns_get_record()函数用法可用于NSLOOKUP查询各项域名DNS记录
使用平台:(PHP 5, PHP 7)
dns_get_record — 用于获取指定主机的DNS记录
说明
dns_get_record ( string $hostname [, int $type = DNS_ANY [, array &$authns [, array &$addtl [, bool &$raw = false ]]]] )
获取指定主机(hostname)的DNS记录。
参数说明
hostname
主机名(hostname)应该是一个DNS解析生效的域名,例如“www.bnxb.com”。主机名也可以是通过对逆向解析域做DNS逆向域名解析而得到,但是在大多数情况下gethostbyaddr()更加适合做逆向域名解析。
注意:
每个DNS标准,邮件地址必须是user.host这样的格式(例如hostmaster.bnxb.com而不是[email protected]),在使用mail()这个函数之前请检查这个值,有必要的话还需要修改。
type
默认情况下,dns_get_record()将会搜索所有与hostname相关的记录,可以通过设置type来限定查询。type的值可以是下面的其中的任何一个: DNS_A,DNS_CNAME,DNS_HINFO,DNS_MX,DNS_NS,DNS_PTR,DNS_SOA,DNS_TXT,DNS_AAAA,DNS_SRV,DNS_NAPTR,DNS_A6,DNS_ALL或者DNS_ANY。
注意:
由于dns在各个平台上表现有些不一样,DNS_ANY不会总是返回所有的记录,DNS_ALL虽然慢一些,但是会得到所有的记录,所以使用DNS_ALL更加可靠些。
authns
以引用方式传递,如果写了该参数,那么将会得到该解析记录的DNS服务器(Authoritative Name Servers)的信息。
addtl
以引用方式传递,如果填写了该参数,将会得到其他所有的DNS解析记录。
raw
在原生模式下,在进行额外的查询的时候之前我们只执行请求的DNS类型,而不是循环查询所有的类型。
返回值
这个函数返回一个关联数组,而不是简单的返回TRUE,FALSE,换句话说,返回的结果就是域名的DNS记录,包括A记录,CNAME,TXT,MX之类的全部记录都有,如果失败则返回 FALSE。
更新日志
版本 说明
5.4.0 增加了参数raw。
5.3.0 可以是在windows平台上使用这个函数了。
5.3.0 在此版本之前,如果给参数authns传入值,则必须同时传入addtl的值。
范例
Example #1 使用 dns_get_record()函数
<?php
$result = dns_get_record("bnxb.com");
print_r($result);
?>
以上例程的输出类似于:
Array
(
[0] => Array
(
[host] => bnxb.com
[type] => MX
[pri] => 5
[target] => pair2.bnxb.com
[class] => IN
[ttl] => 6765
)
[1] => Array
(
[host] => bnxb.com
[type] => A
[ip] => 64.246.30.37
[class] => IN
[ttl] => 8125
)
)
Example #2 使用dns_get_record()配合DNS_ANY的例子
由于我们经常会想获取一个邮件服务器的对应的IP地址的MX记录是否已经生效。在使用dns_get_record()函数之后,addtl能够返回一个相关的数组记录,authns参数则会返回授权服务器的列表信息。
<?php
/* Request "ANY" record for bnxb.com,
and create $authns and $addtl arrays
containing list of name servers and
any additional records which go with
them */
dns_get_record — 用于获取指定主机的DNS记录
说明
dns_get_record ( string $hostname [, int $type = DNS_ANY [, array &$authns [, array &$addtl [, bool &$raw = false ]]]] )
获取指定主机(hostname)的DNS记录。
参数说明
hostname
主机名(hostname)应该是一个DNS解析生效的域名,例如“www.bnxb.com”。主机名也可以是通过对逆向解析域做DNS逆向域名解析而得到,但是在大多数情况下gethostbyaddr()更加适合做逆向域名解析。
注意:
每个DNS标准,邮件地址必须是user.host这样的格式(例如hostmaster.bnxb.com而不是[email protected]),在使用mail()这个函数之前请检查这个值,有必要的话还需要修改。
type
默认情况下,dns_get_record()将会搜索所有与hostname相关的记录,可以通过设置type来限定查询。type的值可以是下面的其中的任何一个: DNS_A,DNS_CNAME,DNS_HINFO,DNS_MX,DNS_NS,DNS_PTR,DNS_SOA,DNS_TXT,DNS_AAAA,DNS_SRV,DNS_NAPTR,DNS_A6,DNS_ALL或者DNS_ANY。
注意:
由于dns在各个平台上表现有些不一样,DNS_ANY不会总是返回所有的记录,DNS_ALL虽然慢一些,但是会得到所有的记录,所以使用DNS_ALL更加可靠些。
authns
以引用方式传递,如果写了该参数,那么将会得到该解析记录的DNS服务器(Authoritative Name Servers)的信息。
addtl
以引用方式传递,如果填写了该参数,将会得到其他所有的DNS解析记录。
raw
在原生模式下,在进行额外的查询的时候之前我们只执行请求的DNS类型,而不是循环查询所有的类型。
返回值
这个函数返回一个关联数组,而不是简单的返回TRUE,FALSE,换句话说,返回的结果就是域名的DNS记录,包括A记录,CNAME,TXT,MX之类的全部记录都有,如果失败则返回 FALSE。
更新日志
版本 说明
5.4.0 增加了参数raw。
5.3.0 可以是在windows平台上使用这个函数了。
5.3.0 在此版本之前,如果给参数authns传入值,则必须同时传入addtl的值。
范例
Example #1 使用 dns_get_record()函数
<?php
$result = dns_get_record("bnxb.com");
print_r($result);
?>
以上例程的输出类似于:
Array
(
[0] => Array
(
[host] => bnxb.com
[type] => MX
[pri] => 5
[target] => pair2.bnxb.com
[class] => IN
[ttl] => 6765
)
[1] => Array
(
[host] => bnxb.com
[type] => A
[ip] => 64.246.30.37
[class] => IN
[ttl] => 8125
)
)
Example #2 使用dns_get_record()配合DNS_ANY的例子
由于我们经常会想获取一个邮件服务器的对应的IP地址的MX记录是否已经生效。在使用dns_get_record()函数之后,addtl能够返回一个相关的数组记录,authns参数则会返回授权服务器的列表信息。
<?php
/* Request "ANY" record for bnxb.com,
and create $authns and $addtl arrays
containing list of name servers and
any additional records which go with
them */
顶(0)
踩(0)
- 最新评论
