共计 1000 个字符,预计需要花费 3 分钟才能阅读完成。
-
说明
在有些场景下做 PHP 开发时,需要获取到域名的
dns
解析记录,如通过CNAME
解析记录实现自定义域名,通过TXT
解析记录实现域名鉴权,确认是域名所有者在操作。在 PHP 中,已经提供了dns_get_record
函数来获取dns
的解析记录情况 -
函数
官方文档中,对该函数做了详细的说明,这里主要说明一下type
参数
从上图中看出,可以指定获取dns
的记录类型,下面做简单的测试 -
测试
-
获取
www.sunyonghong.cn
的CNAME
解析值的 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 ) )
可以看到返回的数据中,存在
type
和target
字段,分别对应的是解析类型
和记录值
,这里表示将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 解析记录
正文完