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

时间:2016-12-29 18:27:27

标签: php dns mx-record nslookup dns-get-record

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

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

[5] => Array (
    [host] => nuwatches.com.com
    [class] => IN
    [ttl] => 27
    [type] => MX
    [pri] => 1
    [target] => mail.user-mail.net
)

但是,如果我直接在DigitalOcean Droplet的控制台上使用nslookup,我会被告知没有MX记录。

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

我已经接受过DigitalOcean的支持,他们认为PHP在特定的Droplet上发生了一些奇怪的事情,可能还有缓存问题,但我根本无法弄清楚可能导致这种差异的原因,特别是因为我是不要自己缓存任何东西。

按照目前的情况,我唯一能在此Droplet上获得正确响应的选项是运行nslookup然后解析结果,但如果可能的话我想使用dns_get_record()

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

0 个答案:

没有答案