为了账号安全,请及时绑定邮箱和手机立即绑定

dns_get_mx、dns_get_record和检查不适用于 MX

dns_get_mx、dns_get_record和检查不适用于 MX

PHP
郎朗坤 2022-09-17 22:33:57
我正在尝试验证给定域是否存在 MX 记录,但没有任何效果。// prepare the hostname$hostname = 'gmail.com';$hostname = idn_to_ascii($hostname);//php.net/manual/function.checkdnsrr.php#113537$hostname = sprintf('%s.', $hostname);//php.net/manual/function.checkdnsrr.php#119969// perform the checksdns_get_mx($hostname, $dns_get_mx); // a.k.a. getmxrr()$dns_get_record = dns_get_record($hostname, DNS_MX);$checkdnsrr = checkdnsrr($hostname, 'MX');// output the resultvar_dump(array(    'hostname' => $hostname,    'dns_get_mx' => $dns_get_mx,    'dns_get_record' => $dns_get_record,    'checkdnsrr' => $checkdnsrr,));以下是我得到的内容(对于 gmail.com 和 分别尝试):gmail.comWarning: dns_get_record(): A temporary server error occurred. in /var/www/html/example.phparray (size=4)  'hostname' => string 'gmail.com.' (length=10)  'dns_get_mx' =>     array (size=0)      empty  'dns_get_record' => boolean false  'checkdnsrr' => boolean false如果我用 替换,dns_get_record() 返回一个正确的 IP 地址,而检查数r() 返回 。MXAtrue日志中没有任何内容(除了上面的警告),谷歌搜索也无济于事。如何对此进行调试?断续器此问题出现在我的本地虚拟盒环境(PHP 5.6.39)中;一切实际上都在生产服务器上工作(PHP 7.3.11)
查看完整描述

1 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

虚拟框似乎正在覆盖 ,这搞砸了来宾计算机上的DNS。/etc/resolv.conf

我现在的解决方法是:

echo "nameserver 1.1.1.1" > /etc/resolv.conf

更多信息


查看完整回答
反对 回复 2022-09-17
  • 1 回答
  • 0 关注
  • 187 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号