checkdnsrr() 僅支援 Linux,Windows 下不可用。需自行實作相容函數。
if (!function_exists('checkdnsrr')) {
function checkdnsrr($host, $type = '') {
if (empty($host)) return false;
$type = empty($type) ? 'MX' : $type;
exec('nslookup -type=' . $type . ' ' . escapeshellcmd($host), $result);
$it = new ArrayIterator($result);
foreach (new RegexIterator($it, '~^' . $host . '~', RegexIterator::GET_MATCH) as $match) {
if ($match) return true;
}
return false;
}
}
| 類型 | 用途 |
|---|---|
| A | 主機名對應 IPv4 位址 |
| MX | 郵件交換記錄 (預設),驗證 Email 域名有效性 |
| NS | 授權名稱伺服器 |
| SOA | 起始授權記錄,標示主 DNS |
| PTR | 反向解析 (IP → 域名) |
| CNAME | 別名記錄 |
| AAAA / A6 | IPv6 位址記錄 |
| SRV | 服務定位 (常用於 Active Directory) |
| TXT | 文字資訊 (SPF, DKIM 等) |
| ANY | 所有記錄類型 |
if (checkdnsrr('gmail.com', 'MX')) {
echo "域名存在 MX 記錄,可接收郵件";
} else {
echo "域名無效或無郵件伺服器";
}