PHP dns_get_record 网络函数



  • 定义和用法

    dns_get_record - 获取指定主机的DNS记录
  • 版本支持

    PHP4 PHP5 PHP7
    不支持 支持 支持
  • 语法

    dns_get_record ( string $hostname [, int $type = DNS_ANY [, array &$authns [, array &$addtl [, bool &$raw = false ]]]]  )
    
    获取指定主机(hostname)的DNS记录。
  • 参数

    参数 必需的 描述
    hostname 主机名(hostname)应该是一个DNS解析生效的域名,例如“www.example.com”。主机名也可以是通过对逆向解析域做DNS逆向域名解析而得到,但是在大多数情况下gethostbyaddr()更加适合做逆向域名解析。
    注意:每个DNS标准,邮件地址必须是user.host这样的格式(例如hostmaster.example.com而不是hostmaster@example.com),在使用mail()这个函数之前请检查这个值,有必要的话还需要修改。
    type 默认情况下,dns_get_record()将会搜索所有与hostname相关的记录,可以通过设置type来限定查询。type的值可以是下面的其中的任何一个: DNS_ADNS_CNAMEDNS_HINFODNS_MXDNS_NSDNS_PTRDNS_SOADNS_TXTDNS_AAAADNS_SRVDNS_NAPTRDNS_A6DNS_ALL或者DNS_ANY
    注意:由于dns在各个平台上表现有些不一样,DNS_ANY不会总是返回所有的记录,DNS_ALL虽然慢一些,但是会得到所有的记录,所以使用DNS_ALL更加可靠些。
    authns 以引用方式传递,如果写了该参数,那么将会得到该解析记录的DNS服务器(Authoritative Name Servers)的信息。
    addtl 以引用方式传递,如果填写了该参数,将会得到其他所有的DNS解析记录。
    raw 在原生模式下,在进行额外的查询的时候之前我们只执行请求的DNS类型,而不是循环查询所有的类型。
  • 返回值

    这个函数返回一个关联数组,如果失败则 或者在失败时返回 FALSE。每个关联数组都至少包含了以下的这些键。
    基本DNS属性:
    • host 其余关联数据所引用的DNS名称空间中的记录。
    • class dns_get_record()仅返回Internet类记录,因此此参数将始终返回IN。
    • type 包含记录类型的字符串。 根据类型的值,其他属性也将包含在结果数组中。 见下表。
    • ttl 该记录剩余的“生存时间”。 这将不等于记录的原始ttl,而是等于原始ttl减去自查询权威名称服务器以来经过的时间长度。
    关联数组中的其他键取决于“type”:
    • A - ip:点分十进制格式的IPv4地址。
    • MX - pri:邮件交换器的优先级。数字越小表示优先级越高。目标:邮件交换器的FQDN。另请参见dns_get_mx()。
    • CNAME - target:别名记录的DNS名称空间中位置的FQDN。
    • NS - target:对该主机名具有权威性的名称服务器的FQDN。
    • PTR - target:此记录指向的DNS名称空间中的位置。
    • TXT - txt:与此记录关联的任意字符串数据。
    • HINFO - cpu:IANA编号,指定此记录引用的计算机的CPU。 os:此记录引用的计算机上指定操作系统的IANA编号。有关这些值的含义,请参见IANA的»操作系统名称。
    • SOA - mname:资源记录源自的计算机的FQDN。 rname:此域的管理包含的电子邮件地址。 serial:所请求域的此修订版本的序列号。刷新:更新此域的远程副本时,应该使用辅助名称服务器的刷新间隔(秒)。重试:刷新失败后要进行第二次尝试的等待时间(秒)。 expire:辅助DNS服务器应在不成功刷新之前保留区域数据的远程副本的最长时间(秒),然后再丢弃。 minimum-ttl:客户端可以继续使用DNS解析的最短时间(秒),然后客户端应从服务器请求新的解析。可以被单个资源记录覆盖。
    • AAAA - ipv6:IPv6地址
    • A6 - masklen:从链指定的目标继承的长度(以位为单位)。 ipv6:该特定记录的地址与链合并。链:父记录以与ipv6数据合并。
    • SRV - pri :(优先级)最低优先级应首先使用。权重:按权重排序应随机选择通常优先考虑的目标。目标和端口:可以在其中找到请求的服务的主机名和端口。有关更多信息,请参见:»RFC 2782
    • NAPTR - order and pref:等同于上述pri和weight。标志,服务,正则表达式和替换:参数由»RFC 2915定义。
  • 示例

    <?php
    $result = dns_get_record("jc2182.com");
    print_r($result);
    
  • 相关函数

    getmxrr() - 获取互联网主机名对应的 MX 记录
    checkdnsrr() - 给指定的主机(域名)或者IP地址做DNS通信检查