PHP获取dns解析记录

16,943次阅读
没有评论

共计 1000 个字符,预计需要花费 3 分钟才能阅读完成。

  • 说明

    在有些场景下做 PHP 开发时,需要获取到域名的 dns 解析记录,如通过 CNAME 解析记录实现自定义域名,通过 TXT 解析记录实现域名鉴权,确认是域名所有者在操作。在 PHP 中,已经提供了 dns_get_record 函数来获取 dns 的解析记录情况

  • 函数

    PHP 获取 dns 解析记录
    官方文档中,对该函数做了详细的说明,这里主要说明一下 type 参数
    PHP 获取 dns 解析记录
    从上图中看出,可以指定获取 dns 的记录类型,下面做简单的测试

  • 测试

    • 获取 www.sunyonghong.cnCNAME解析值的 PHP 代码如下:

      $result = dns_get_record('www.sunyonghong.cn',DNS_CNAME);
      print_r($result);

      执行后得到如下结果:

      Array
      ([0] => Array
            ([host] => www.sunyonghong.cn
                [class] => IN
                [ttl] => 60
                [type] => CNAME
                [target] => www.sunyonghong.com
            )
      
      )

      可以看到返回的数据中,存在 typetarget字段,分别对应的是 解析类型 记录值 ,这里表示将www.sunyonghong.cn 使用 cname 解析到了www.sunyonghong.com

    • 获取 txt 解析记录值
      之前在 nginx 配置 https 时,申请了免费证书,做了一个 txt 解析,这里可以通过 PHP 获取查看记录值,PHP 代码如下

      $result = dns_get_record('_dnsauth.sunyonghong.com',DNS_TXT);
      print_r($result);

      执行后得到如下结果:

      Array
      ([0] => Array
            ([host] => _dnsauth.sunyonghong.com
                [class] => IN
                [ttl] => 60
                [type] => TXT
                [txt] => 2021011300000056uczf4bzxp9icirm19kkhbk8i3jp4ugyami6m7fiueuk393sv
                [entries] => Array
                    ([0] => 2021011300000056uczf4bzxp9icirm19kkhbk8i3jp4ugyami6m7fiueuk393sv
                    )
      
            )
      
      )

      可以看到返回数据中,将 txt 解析记录值返回了,可以利用此方式,来验证域名所有者是否合法。

此函数还可以获得更多的 dns 数据,可以自行进行测试。

标签:dns
php

文章来源: PHP 获取 dns 解析记录

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2021-01-22发表,共计1000字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)