问题标签 [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.
php - 为什么 dns_get_record() PHP 函数返回空数组?
我的一个网站中有一个脚本,它使用dns_get_record()
PHP 函数获取 DNS 记录。但是这个函数返回一个空数组大约是 2 周。我写了一个如下的测试脚本:
它在我的本地机器上运行良好,但是当我在我的服务器上测试它时,它返回空数组作为结果。
朋友怎么了?
php - 执行大量 DNS 查询的 PHP 脚本 - 处理它的最佳方式
我有一个每周运行一次的工作并检索一堆 700 个主机名。我需要将它们翻译成 IP 地址。我的第一个实验是调用 php 原生函数“dns_get_record”,将结果存储到数据库中。
由于要执行的 dns 查询数量,该脚本使我的服务器冻结,也许来自 DNS 支持的人认为它受到了攻击。
现在我正在考虑将这个查询传播到整个 6 小时,也许是脚本启动后的 12 小时。所以我想在 foreach 循环结束时使用 sleep(30) 。这是最好的方法吗?
您还有其他建议可以减轻我的服务器和 DNS 的负担吗?
谢谢
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()
。
我会很感激任何建议。谢谢!
php - PHP 仅使用 dns_record 获取记录
我正在为服务器制作一个 IP 抓取脚本,但我的代码有一些问题。我只想使用 dns_get_record 获取服务器的 IP 地址,而不会在默认输出中出现额外的膨胀。但是,我当前的脚本在运行时显示空白输出。和不。我不能简单地使用 gethostbyname,因为它必须与查询运行代码的服务器的 wan ips 兼容。到目前为止,这是我的代码:
php - DNS_ANY 工作,但 DNS_TXT 不适用于 DS_GET_RECORD php 函数
我正在尝试调试 dns_get_record ,因为它没有按预期为我工作。
我创建了一个文本 DNS 记录“laramon_59939919ec899.glibix.com”。值为“dd678f947384ed8d3531465439ff852e01e6eb1d”
和:
我得到:
但是有:
我得到:
我添加的记录是TXT类型的。有人可以帮我理解为什么我在专门寻找 TXT 记录时没有得到正确的记录吗?
php - 检查主机名在 php 5.6 中有 CAA 记录
早上好,
我目前面临一个小问题。要创建一些自动化过程,我需要能够检查主机名是否有 CAA 记录。
letencrypt 需要 CAA 记录来生成证书。我想使用 dns_get_record 来检查我的 DNS,但不幸的是,我们使用的是 PHP 5.6,而 php 5.6 中的 dns_get_record 无法获取这些记录。
所以我想知道是否有人对php有任何想法,关于如何检查主机名是否有CAA记录。
提前感谢
php - 检测空子数组 - 无效的 foreach
我正在尝试获取表中域列表的 NS 和 A 记录。
我已经开始写这个:
$domains 是我要检查的表中的 id 和域。
我收到的警告是:
警告:为后面的 foreach 提供的 foreach() 参数无效
和
警告:dns_get_record():dns_get_record 的 DNS 查询失败
从外观上看,当 dns_get_record() 找不到任何内容时,我会收到这些错误。
我正在尝试将这些域标记为数据库中存在问题,因此我需要一种方法来检测它们。我尝试了 empty() 和其他方法来检测它们,但我所做的一切都会引发上面的 php 警告。
这是因为它是一个多维数组吗?我该如何正确地做到这一点。
谢谢
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 + ...
但没有达到所需的输出。
php - 为什么 dns_get_record 不适用于某些域?
我使用dns_get_record
andgetmxrr
来获取域数据 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
为什么它出现在某些域以及如何解决它?