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()
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
$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 ?