函数名: dns_get_mx()
适用版本: PHP 4 >= 4.0.0, PHP 5, PHP 7
参数:(string) $hostname
返回值:返回 MX 记录的二维数组列表,每个条目包含 "host" 和 "pri" 字段,如果出错则返回 FALSE。
描述:dns_get_mx() 函数用于获取指定主机名的邮件交换(MX)记录。它将查询 DNS 服务器以获取主机名的 MX 记录,并以二维数组的形式返回这些记录。MX 记录是指定处理特定域的邮件服务器的地址。通常情况下,MX 记录由一个或多个邮件服务器的域名和优先级 (priority) 组成。
注意事项:
- 该函数仅能通过递归查询 DNS 服务器获取 MX 记录,因此可能会导致在某些环境下性能下降或超时。
- 如果没有找到 MX 记录,dns_get_mx() 函数会返回空数组。
- 如果出错,例如无法连接到 DNS 服务器或主机名不存在,dns_get_mx() 函数会返回 FALSE。
示例:
$hostname = 'example.com';
$mxRecords = dns_get_mx($hostname);
if ($mxRecords) {
echo "MX Records for $hostname:\n";
foreach ($mxRecords as $record) {
$host = $record['host'];
$priority = $record['pri'];
echo "Host: $host, Priority: $priority\n";
}
} else {
echo "No MX Records found for $hostname\n";
}
输出:
MX Records for example.com:
Host: mx1.example.com, Priority: 10
Host: mx2.example.com, Priority: 20
上述示例中,我们通过调用 dns_get_mx() 函数并传递主机名 'example.com' 作为参数来获取该域的 MX 记录。如果成功,返回的 $mxRecords 数组将包含一个或多个 MX 记录的条目,我们可以使用 foreach 循环来遍历并打印每个记录的主机名和优先级。如果没有找到 MX 记录,将输出相应的提示信息。