Position actuelle: Accueil> Derniers articles> Comment vérifier l'enregistrement MX d'un nom de domaine via la fonction CheckDNSRR?

Comment vérifier l'enregistrement MX d'un nom de domaine via la fonction CheckDNSRR?

gitbox 2025-09-29

Dans PHP, la fonction CheckDNSRR est un outil très utile qui peut être utilisé pour vérifier les enregistrements DNS pour les noms de domaine. Bien qu'il soit souvent utilisé pour détecter le nom de domaine A Records, CNAME Records, etc., il peut également être utilisé pour vérifier les enregistrements d'échange de courrier (MX), nous aidant ainsi à déterminer si un nom de domaine a un serveur de messagerie configuré. Cet article vous fera étape par étape pour voir comment utiliser la fonction CheckDNSRR pour vérifier les enregistrements MX du nom de domaine.

1. Présentation de la fonction CheckDnSrr

CheckDNSRR est une fonction qui vérifie si un nom de domaine spécifié a un enregistrement DNS du type spécifié. La signature de la fonction est la suivante:

 <span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-title function_ invoke__">checkdnsrr</span></span><span> ( </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$hostname</span></span><span> , </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$type</span></span><span> = </span><span><span class="hljs-string">"any"</span></span><span> )
</span></span>
  • $ hostname : le nom de domaine à vérifier (peut être un nom de domaine complet, comme example.com ).

  • $ Type : Le type d'enregistrement DNS à vérifier, la valeur par défaut est "n'importe quel" , c'est-à-dire vérifier tous les enregistrements. Si vous n'avez qu'à vérifier un type d'enregistrement particulier (tel que MX Record, un enregistrement, etc.), vous pouvez le spécifier comme "MX" .

2. Vérifiez les enregistrements MX à l'aide de CheckDnsrr

Pour vérifier si un nom de domaine a un serveur de messagerie configuré, vous pouvez utiliser la fonction CheckDNSRR et définir un type $ sur "MX" . Voici un exemple:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$domain</span></span><span> = </span><span><span class="hljs-string">"example.com"</span></span><span>;

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">checkdnsrr</span></span><span>(</span><span><span class="hljs-variable">$domain</span></span><span>, </span><span><span class="hljs-string">"MX"</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"nom de domaine <span class="hljs-subst">$domain</span></span></span><span> Configuré MX Enregistrer,Signifie généralement qu&#39;il y a un serveur de messagerie。";
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"nom de domaine <span class="hljs-subst">$domain</span></span></span><span> Non configuré MX Enregistrer,Il peut n&#39;y avoir pas de serveur de messagerie。";
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Dans le code ci-dessus, nous spécifions d'abord le nom de domaine Exemple.com pour vérifier. Ensuite, utilisez la fonction CheckDNSRR pour déterminer s'il existe un enregistrement MX. Si la valeur de retour est vraie , cela signifie que le nom de domaine a configuré les enregistrements MX et il peut y avoir un serveur de messagerie; Si FALSE , cela signifie que le nom de domaine n'a pas de enregistrements MX configurés.

3. Analyser les enregistrements MX

La fonction CheckDNSRR ne peut déterminer que si le nom de domaine a configuré les enregistrements MX, mais ne renverra pas le contenu d'enregistrement MX spécifique. Si vous avez besoin d'obtenir des enregistrements MX plus détaillés, tels que le nom d'hôte ou la priorité du serveur de messagerie, vous pouvez utiliser la fonction DNS_GET_RECORD conjointement avec la fonction DNS_GET_RECORD . Cette fonction peut renvoyer tous les enregistrements DNS du type spécifié, y compris les détails des enregistrements MX.

Voici un exemple montrant comment obtenir et afficher les enregistrements MX via dns_get_record :

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$domain</span></span><span> = </span><span><span class="hljs-string">"example.com"</span></span><span>;

</span><span><span class="hljs-comment">// Obtenir MX Enregistrer</span></span><span>
</span><span><span class="hljs-variable">$records</span></span><span> = </span><span><span class="hljs-title function_ invoke__">dns_get_record</span></span><span>(</span><span><span class="hljs-variable">$domain</span></span><span>, DNS_MX);

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$records</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"nom de domaine <span class="hljs-subst">$domain</span></span></span><span> de MX Enregistrer如下:&lt;br&gt;";
    </span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$records</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$record</span></span><span>) {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Priorité: "</span></span><span> . </span><span><span class="hljs-variable">$record</span></span><span>[</span><span><span class="hljs-string">'pri'</span></span><span>] . </span><span><span class="hljs-string">" - Serveur de messagerie: "</span></span><span> . </span><span><span class="hljs-variable">$record</span></span><span>[</span><span><span class="hljs-string">'target'</span></span><span>] . </span><span><span class="hljs-string">"&lt;br&gt;"</span></span><span>;
    }
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"nom de domaine <span class="hljs-subst">$domain</span></span></span><span> Pas trouvé MX Enregistrer。";
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Dans cet exemple, nous utilisons dns_get_record pour obtenir l'enregistrement MX du nom de domaine spécifié. Le résultat renvoyé est un tableau, chaque élément contenant la priorité ( PRI ) de l'enregistrement MX et l'adresse du serveur de messagerie cible ( cible ).

4. Résumé

Grâce à la fonction CheckDNSRR , nous pouvons rapidement déterminer si un nom de domaine a configuré les enregistrements MX, puis spéculer si le nom de domaine a un service de messagerie. Cependant, si des informations d'enregistrement MX plus détaillées sont requises, vous pouvez utiliser la fonction DNS_GET_RECORD conjointement avec elle. Cette combinaison peut nous aider à mieux résoudre et gérer les configurations DNS liées aux e-mails.

Ce qui précède est de savoir comment utiliser la fonction CheckDNSRR de PHP pour vérifier les enregistrements MX du nom de domaine, en espérant qu'il puisse vous aider.