首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP5: dns_get_record()仅返回子域名的A记录

问PHP5: dns_get_record()仅返回子域名的A记录
EN

Stack Overflow用户
提问于 2009-08-18 15:17:00
回答 2查看 2.1K关注 0票数 2

在Linux上运行PHP5.2时,我使用dns_get_record()运行了一系列查询。从文档中可以看出,这个函数复制了dig,但我看到了不一致的地方。我的目标是获得对每个主机名所属的域具有权威性的主要和次要名称服务器。

dns_get_record('example.com', DNS_NS);会返回良好的结果。dns_get_record('www.example.com', DNS_NS);不返回任何内容。dns_get_record('www.example.com', DNS_ANY);仅返回A记录。dns_get_record('www.example.com', DNS_SOA);不返回任何内容。

但是,从使用dig的命令行中,我总是可以获得至少SOA:

dig www.example.com NS或dig www.example.com SOA

返回包含名称服务器的有效授权部分(在SOA中)。

我如何在PHP中复制它?我尝试过PEAR Net_DNS模块,看到了与dns_get_record()类似的恶作剧。

EN

回答 2

Stack Overflow用户

发布于 2012-09-27 06:29:16

当您从命令行使用dig时,您将更直接(相对地)连接到DNS。输出也针对该场景进行了格式化。当执行php函数时,它返回作者认为需要的值。不一定直接对应于dig。

如果您希望获得dig结果,那么可以使用exec('dig www.example.com ns');并根据需要解析返回输出。

另外,如果你在DNS中查询一个子域,比如www。而不是tld (example.com),那么您将不会获得与其相关联的其他记录-您将只获得与该子域名相关联的结果,在您的示例中,这只是一条A记录。

票数 1
EN

Stack Overflow用户

发布于 2019-08-16 23:14:19

我有一个类似的问题,对于节点(或子域),您需要更具体,并知道您正在请求的DNS条目的文本。

例如,DMARC DNS条目是TXT条目,SPF和DKIM也是如此。

代码语言:javascript
复制
$showResult = dns_get_record('_dmarc.domain.com', DNS_TXT); //returns an array

工作正常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1294565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档