Manuel PHP
dns_get_record
(PHP 5)
dns_get_record — Lit les données DNS associées à un hôte
Description
Lit les données DNS associées à l'hôte hostname .
Liste de paramètres
- hostname
-
hostname doit être un nom d'hôte DNS valide, comme www.example.com. Des résolutions inversées peuvent être faites avec la notation in-addr.arpa, mais la fonction gethostbyaddr() est plus efficace pour faire des résolutions inverses.
Note: En terme de standards DNS, les adresses email sont données au format utilisateur.hote (par exemple : webmestre.example.com au contraire du format webmestre@example.com). N'oubliez pas de vérifier cette adresse et de la modifier si nécessaire avant de la passer à la fonction mail().
- type
-
Par défaut, dns_get_record() va rechercher toutes les ressources associées à hostname . Pour limiter la taille de la requête, le paramètre optionnel type peut prendre l'une des valeurs constantes suivantes : DNS_A, DNS_CNAME, DNS_HINFO, DNS_MX, DNS_NS, DNS_PTR, DNS_SOA, DNS_TXT, DNS_AAAA, DNS_SRV, DNS_NAPTR, DNS_A6, DNS_ALL ou DNS_ANY. Par défaut, il vaut DNS_ANY.
Note: À cause des performances excentriques de la bibliothèque libresolv, suivant les plates-formes, DNS_ANY ne retournera pas toujours tous les enregistrements, et l'option DNS_ALL, bien que plus lente, le fera de manière plus sûre.
- authns
-
Passé par référence, et, s'il est fourni, recevra les enregistrements de ressources pour les Authoritative Name Servers.
- addtl
-
Passé par référence, et, s'il est fourni, recevra tous les enregistrements supplémentaires.
Valeurs de retour
dns_get_record retourne un tableau associatif, contenant au minimum les index suivants :
| Attribut | Signification |
|---|---|
| host | L'enregistrement de l'espace de nom DNS qui est décrit par les autres données. |
| class | dns_get_record() ne retourne que la classe d'enregistrement Internet et, en tant que tel, cet index vaudra toujours IN. |
| type | Chaîne de caractère contenant le type d'enregistrement. Des attributs supplémentaires seront aussi disponibles dans le tableau suivant la valeur de ce type. Reportez-vous à la table ci-dessous. |
| ttl | "Time To Live" : durée avant expiration de l'enregistrement. Cette valeur est différente de la durée avant expiration originale, mais plutôt cette valeur moins la durée depuis la dernière interrogation du serveur DNS responsable. |
| Type | Valeur supplémentaire |
|---|---|
| A | ip: une adresse IPv4, au format numérique. |
| MX | pri : priorité du serveur de mail. Les nombres faibles indiquent une priorité importante. target : FQDN du serveur de mail. Voir aussi dns_get_mx(). |
| CNAME | target : FQDN du nom de l'espace DNS qui sert d'alias à cet enregistrement. |
| NS | target : FQDN du nom de serveur qui est responsable de ce nom de domaine. |
| PTR | target : nom de domaine vers lequel cet enregistrement |
| TXT | txt : chaîne de caractères arbitrairement associée à cet enregistrement. |
| HINFO | cpu : numéro IANA désignant le processeur de la machine référencée par cet enregistrement. os : numéro IANA désignant le système d'exploitation de la machine référencée par cet enregistrement. Voir » Operating System Names pour connaître la signification de ces valeurs. |
| SOA | mname : FQDN de la source de cet enregistrement. rname : adresse email du contact administratif de ce domaine. serial : numéro de série du nom de domaine. refresh : intervalle de rafraîchissement (en secondes) que les serveurs de noms secondaires doivent utiliser pour mettre en cache ce nom de domaine. retry : durée (en secondes) d'attente après un rafraîchissement échoué, avant de faire une seconde tentative. expire : durée maximale (en secondes) de conservation d'une copie des données de zone sans pouvoir faire de rafraîchissement. minimum-ttl : durée minimale (en secondes) pendant laquelle un client conserve des données de zone avant qu'il ne soumette une nouvelle requête. Cette configuration peut être annulée par d'autres enregistrements. |
| AAAA | ipv6: adresse IPv6 |
| A6(PHP >= 5.1.0) | masklen : longueur (en octets) à hériter depuis la cible spécifiée par chain . ipv6 : adresse pour que cet enregistrement spécifique fusionne avec chain . chain : l'enregistrement parent à fusionner avec les données ipv6 . |
| SRV | pri : (priorité) les priorités les plus basses doivent être utilisées en premier. weight : classement pour choisir aléatoirement parmi les serveurs targets . target et port : nom d'hôte et port où le service est disponible. Pour plus d'informations, voir : » RFC 2782 |
| NAPTR | order et pref : équivalent à pri et weight ci-dessus. flags, services, regex, et replacement : paramètres tels que définis dans la » RFC 2915. |
Exemples
Exemple #1 Exemple avec dns_get_record()
- <?php
- $result = dns_get_record("php.net");
- print_r($result);
- ?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
Exemple #2 Exemple avec dns_get_record() et DNS_ANY
Comme il est très courant de rechercher l'IP d'un serveur, une fois que le champ MX a été résolu, dns_get_record() retournera aussi un tableau dans le paramètre addtl qui contiendra les enregistrements associés. authns est aussi retourné en contenant une liste des serveurs autorité.
- <?php
- /* Demande tous ("ANY") les enregistrements pour php.net,
- puis crée les tableaus $authns et $addtl
- contenant une liste des noms de serveurs, et tous
- les enregistrements qui vont avec
- */
- $result = dns_get_record("php.net", DNS_ANY, $authns, $addtl);
- echo "Result = ";
- print_r($result);
- echo "Auth NS = ";
- print_r($authns);
- echo "Additional = ";
- print_r($addtl);
- ?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
Remonter 
