快捷搜索:   服务器  安全  linux 安全  MYSQL  dedecms

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 */
顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论