当前位置:首页 > 编程相关 > PHP > 正文内容

PHP获取dns解析记录

martinsun3年前 (2021-01-22)PHP2.48 K
  • 说明

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

  • 函数


    官方文档中,对该函数做了详细的说明,这里主要说明一下type参数

    从上图中看出,可以指定获取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数据,可以自行进行测试。

版权声明:本文由MartinSun发布,内容供学习参考使用。

图文说明:部分图文来源于网络,如侵权请联系删除。

本文链接:https://www.sunyonghong.com/?id=27

标签: dnsphp
分享给朋友:

相关文章

PHP非对称RSA加密算法

非对称加密非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。 RSA加密算法RSA是目前最有影响力的公...

PHP安装Suhosin扩展禁用eval函数

说明eval函数是通过 zend 来实现的,不能用 php.ini 直接关闭掉,可以利用安装 Suhosin 扩展来禁用 eval 函数。 选择扩展版本并下载 PHP 5.xPHP 7+ 编译安...