criffoh at gmail dot com 是对的。在检查域名之前,必须使用 idn_to_ascii 函数转换为 ascii。
http://us2.php.net/manual/en/function.idn-to-ascii.php .
var_dump(checkdnsrr('ñandu.cl', 'A')); // 返回 false
var_dump(checkdnsrr(idn_to_ascii('ñandu.cl'), 'A')); // 返回 true
(PHP 4、PHP 5、PHP 7、PHP 8)
checkdnsrr — 检查与给定互联网主机名或 IP 地址相对应的 DNS 记录
hostname
hostname
可以是点分四段式表示法的 IP 地址,也可以是主机名。
type
type
可以是以下任何一种:A、MX、NS、SOA、PTR、CNAME、AAAA、A6、SRV、NAPTR、TXT 或 ANY。
criffoh at gmail dot com 是对的。在检查域名之前,必须使用 idn_to_ascii 函数转换为 ascii。
http://us2.php.net/manual/en/function.idn-to-ascii.php .
var_dump(checkdnsrr('ñandu.cl', 'A')); // 返回 false
var_dump(checkdnsrr(idn_to_ascii('ñandu.cl'), 'A')); // 返回 true
重要警告
您需要在主机名末尾添加一个点以构成完整的合格域名。
要了解原因,请尝试执行以下代码段
$d1="gmail.con";
$d2="gmail.con.";
$r1=checkdnsrr($d1, "MX");
$r2=checkdnsrr($d2, "MX");
var_dump($r1);
var_dump($r2);
您将看到,如果没有点,它声称域名“gmail.con”有效。
请注意,如果您对“checkdnsrr()”调用计时,您还将看到它在没有点的情况下花费的时间更长,因为它将其视为相对域名并在其正在运行的主机名基础上进行多次尝试。
注意:如果您感兴趣,将被视为相对域名解释了正在发生的事情。如果您的主机是“example.com”,则相对域名最终将解析为“gmail.con.com.”,可以查找,因此它错误地声称“gmail.con”存在
我一直认为您应该说明显而易见的事情。
包含 checkdnsrr 的函数在没有互联网连接的情况下将返回 false。
因此,在生产环境中,您需要一个活动的互联网连接才能使用有效的电子邮件地址返回 true 结果。