首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

Windows 平台模擬 checkdnsrr 函數:驗證 Email 域名 MX 記錄是否存在

     編輯:PHP 相關知識

問題背景

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;
    }
}

DNS 記錄類型說明

類型用途
A主機名對應 IPv4 位址
MX郵件交換記錄 (預設),驗證 Email 域名有效性
NS授權名稱伺服器
SOA起始授權記錄,標示主 DNS
PTR反向解析 (IP → 域名)
CNAME別名記錄
AAAA / A6IPv6 位址記錄
SRV服務定位 (常用於 Active Directory)
TXT文字資訊 (SPF, DKIM 等)
ANY所有記錄類型

使用範例

if (checkdnsrr('gmail.com', 'MX')) {
    echo "域名存在 MX 記錄,可接收郵件";
} else {
    echo "域名無效或無郵件伺服器";
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved