Aller au contenu

Fonction PHP dns_get_mx() : Tout ce que vous devez savoir

En tant que développeur PHP, vous devrez peut-être obtenir les enregistrements de messagerie (MX) pour un nom de domaine. La fonction dns_get_mx() était historiquement utilisée à cette fin, mais elle a été supprimée dans PHP 8.2. L'approche moderne utilise dns_get_record() avec le drapeau DNS_MX. Dans cet article, nous couvrirons l'ancienne fonction, sa dépréciation et comment utiliser l'alternative recommandée.

Qu'est-ce que la fonction dns_get_mx() ?

La fonction dns_get_mx() était une fonction PHP intégrée qui récupérait les enregistrements de messagerie (MX) pour un nom de domaine donné, en renvoyant un tableau trié par priorité. Elle a été supprimée dans PHP 8.2. Le remplacement recommandé est dns_get_record($hostname, DNS_MX).

Comment utiliser la fonction dns_get_mx()

La syntaxe héritée est : Syntaxe de dns_get_mx()

php
dns_get_mx($hostname, &$mxhosts, &$weight);

La fonction prend trois paramètres :

  • $hostname : Le nom de domaine pour lequel vous souhaitez récupérer les enregistrements MX.
  • $mxhosts : Une variable de référence qui stocke les hôtes MX pour le domaine.
  • $weight : Une variable de référence qui stocke les poids de priorité.

Voici un exemple d'utilisation de la fonction moderne dns_get_record() pour récupérer les enregistrements MX : Recherche moderne d'enregistrements MX

php
<?php

$domain = "example.com";
$records = dns_get_record($domain, DNS_MX);

if ($records) {
  foreach ($records as $record) {
    echo "Host: " . $record['target'] . ", Priority: " . $record['priority'] . "<br/>";
  }
} else {
  echo "No MX records found for $domain";
}

Dans cet exemple, nous récupérons les enregistrements MX pour le domaine « example.com ». La fonction renvoie un tableau d'enregistrements s'ils sont trouvés, ou false sinon. Si des enregistrements sont trouvés, nous les parcourons à l'aide de foreach et affichons l'hôte cible et la priorité. Notez que les requêtes DNS peuvent parfois se bloquer ou échouer sur des domaines invalides ; vérifiez toujours la valeur de retour et envisagez de mettre en place une gestion des délais d'attente pour les applications de production.

Conclusion

Bien que dns_get_mx() ait autrefois été la norme pour récupérer les enregistrements MX, elle a été supprimée dans PHP 8.2. Utilisez plutôt dns_get_record($hostname, DNS_MX) pour des requêtes DNS modernes et fiables. Nous espérons que ce guide vous aidera à mettre en œuvre efficacement la recherche d'enregistrements MX dans vos applications PHP.

Pratique

Que fait la fonction dns_get_mx() en PHP ?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.