问题标签 [dns-get-record]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1780 浏览

php - 为什么 dns_get_record() PHP 函数返回空数组?

我的一个网站中有一个脚本,它使用dns_get_record()PHP 函数获取 DNS 记录。但是这个函数返回一个空数组大约是 2 周。我写了一个如下的测试脚本:

它在我的本地机器上运行良好,但是当我在我的服务器上测试它时,它返回空数组作为结果。
朋友怎么了?

0 投票
1 回答
179 浏览

php - 执行大量 DNS 查询的 PHP 脚本 - 处理它的最佳方式

我有一个每周运行一次的工作并检索一堆 700 个主机名。我需要将它们翻译成 IP 地址。我的第一个实验是调用 php 原生函数“dns_get_record”,将结果存储到数据库中。

由于要执行的 dns 查询数量,该脚本使我的服务器冻结,也许来自 DNS 支持的人认为它受到了攻击。

现在我正在考虑将这个查询传播到整个 6 小时,也许是脚本启动后的 12 小时。所以我想在 foreach 循环结束时使用 sleep(30) 。这是最好的方法吗?

您还有其他建议可以减轻我的服务器和 DNS 的负担吗?

谢谢

0 投票
0 回答
662 浏览

php - 使用 getmxrr() 或 dns_get_record() 检查 MX 记录返回不正确的信息

我目前正在尝试通过首先检查是否存在 MX 记录、在 DigitalOcean 液滴上使用getmxrr()或使用 PHP 7 来检查电子邮件地址的有效性。dns_get_record()

在我的示例中(返回不正确的响应),我试图检查域“nuwatches.com”上的电子邮件地址。使用dns_get_record(”nuwatches.com”, DNS_ALL),我返回了一个包含 MX 记录的数组,即使我知道这在现实中不存在:

但是,如果我nslookup直接从 DigitalOcean 液滴上的控制台使用,我会被正确地告知不存在 MX 记录。

此外,如果我dns_get_record()在不同的 Droplet 上运行该函数,或者使用在线 PHP 代码运行器,我也会得到正确答案(即不存在 MX 记录)。

我已经与 DigitalOcean 支持人员交谈过,他们认为 PHP 在那个特定的液滴上发生了一些奇怪的事情,可能是缓存问题,但我根本不知道是什么导致了这种差异,特别是因为我没有缓存任何东西我。

就目前而言,在此液滴上获得正确响应的唯一选择是运行nslookup然后解析结果,但如果可能的话,我想使用dns_get_record()

我会很感激任何建议。谢谢!

0 投票
1 回答
778 浏览

php - PHP 仅使用 dns_record 获取记录

我正在为服务器制作一个 IP 抓取脚本,但我的代码有一些问题。我只想使用 dns_get_record 获取服务器的 IP 地址,而不会在默认输出中出现额外的膨胀。但是,我当前的脚本在运行时显示空白输出。和不。我不能简单地使用 gethostbyname,因为它必须与查询运行代码的服务器的 wan ips 兼容。到目前为止,这是我的代码:

0 投票
1 回答
670 浏览

php - DNS_ANY 工作,但 DNS_TXT 不适用于 DS_GET_RECORD php 函数

我正在尝试调试 dns_get_record ,因为它没有按预期为我工作。

我创建了一个文本 DNS 记录“laramon_59939919ec899.glibix.com”。值为“dd678f947384ed8d3531465439ff852e01e6eb1d”

和:

我得到:

但是有:

我得到:

我添加的记录是TXT类型的。有人可以帮我理解为什么我在专门寻找 TXT 记录时没有得到正确的记录吗?

0 投票
1 回答
184 浏览

php - 检查主机名在 php 5.6 中有 CAA 记录

早上好,

我目前面临一个小问题。要创建一些自动化过程,我需要能够检查主机名是否有 CAA 记录。

letencrypt 需要 CAA 记录来生成证书。我想使用 dns_get_record 来检查我的 DNS,但不幸的是,我们使用的是 PHP 5.6,而 php 5.6 中的 dns_get_record 无法获取这些记录。

所以我想知道是否有人对php有任何想法,关于如何检查主机名是否有CAA记录。

提前感谢

0 投票
2 回答
91 浏览

php - 检测空子数组 - 无效的 foreach

我正在尝试获取表中域列表的 NS 和 A 记录。

我已经开始写这个:

$domains 是我要检查的表中的 id 和域。

我收到的警告是:

警告:为后面的 foreach 提供的 foreach() 参数无效

警告:dns_get_record():dns_get_record 的 DNS 查询失败

从外观上看,当 dns_get_record() 找不到任何内容时,我会收到这些错误。

我正在尝试将这些域标记为数据库中存在问题,因此我需要一种方法来检测它们。我尝试了 empty() 和其他方法来检测它们,但我所做的一切都会引发上面的 php 警告。

这是因为它是一个多维数组吗?我该如何正确地做到这一点。

谢谢

0 投票
0 回答
218 浏览

php - dns_get_record() 没有返回所有记录

我在虚拟机中使用 PHP 7.2。我正在使用dns_get_record()函数来获取 DNS 记录,但它没有返回所有记录。当我在本地机器或任何其他在线 php 代码编辑器(如“phpfiddle.com”)上使用相同的代码时,它会返回所需的输出。

例如,如果我dns_get_record('google.com', DNS_ANY)在本地服务器上使用,它会返回 17 条记录,但相同的代码在我的 VM 上仅返回 10 条记录。

请帮帮我。甚至不确定是由于 VM 还是其他原因(可能是任何服务器配置问题或其他原因)。

已经尝试dns_get_record()使用所有可能的参数组合(如DNS_ANY或“+”连接的可用常量等字符串)的函数,DNS_A + DNS_AAAA + DNS_PTR + DNS_CNAME + ...但没有达到所需的输出。

0 投票
1 回答
1264 浏览

php - 为什么 dns_get_record 不适用于某些域?

我使用dns_get_recordandgetmxrr来获取域数据 mx 和 ns

但是对于某些域我无法获取数据,例如域tecmilenio.mx dns_get_record('tecmilenio.mx', DNS_NS)返回 false 并发出警告dns_get_record(): A temporary server error occurred.

我检查了控制台命令nslookup -type=mx tecmilenio.mx,没有找到,并显示错误

服务器:127.0.1.1

地址:127.0.1.1#53

** 服务器找不到 tecmilenio.mx:SERVFAIL

为什么它出现在某些域以及如何解决它?

0 投票
1 回答
545 浏览

php - php dns_get_record ("something.com", DNS_TXT) 返回 false

我正在尝试获取 spf 记录以验证发件人地址,但函数返回 false:

mxtoolbox.com我看到该站点有多个 txt 记录

mxtoolbox txt 查找

请帮助我,我怎么能得到那些 spf (txt) 记录,请告诉我为什么它不适用于这些域

更新:

我发现问题只存在于那些特定的域,如果我从我的本地 ip 查询...我从其他 ip 查询它工作得很好...dns 是否有可能根据我的本地 ip 拒绝我的请求?