dns_get_recordLit les données DNS associées à un hôte
&reftitle.description;
arrayfalsedns_get_recordstringhostnameinttypeDNS_ANYarrayauthoritative_name_servers&null;arrayadditional_records&null;boolraw&false;
Lit les données DNS associées à l'hôte
hostname.
&reftitle.parameters;
hostnamehostname 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.
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_CAA,
DNS_MX, DNS_NS,
DNS_PTR, DNS_SOA,
DNS_TXT, DNS_AAAA,
DNS_SRV, DNS_NAPTR,
DNS_A6, DNS_ALL
ou DNS_ANY.
À 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.
Windows : DNS_CAA n'est pas supporté.
Support pour DNS_A6 n'est pas implémenté.
authoritative_name_servers
Passé par référence, et, s'il est fourni, recevra les
enregistrements de ressources pour les
Authoritative Name Servers.
additional_records
Passé par référence, et, s'il est fourni, recevra tous les
enregistrements supplémentaires.
raw
Le type sera interprété comme un ID de type DNS brut
(les constantes DNS_* ne peuvent pas être utilisé).
La valeur de retour contiendra une clé data,
qui doit être manuellement analysé.
&reftitle.returnvalues;
dns_get_record retourne un tableau de tableaux
associatifs, &return.falseforfailure;.
Chaque tableau contient au minimum les index suivants :
Attributs de base DNSAttributSignificationhost
L'enregistrement de l'espace de nom DNS qui est décrit par les autres
données.
classdns_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ères 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.
Autres index disponibles suivant le type DNSTypeValeur supplémentaireAip: une adresse IPv4, au format numérique.
MXpri : priorité du serveur de mail.
Les nombres faibles indiquent une priorité importante.
target : FQDN du serveur de mail.
Voir aussi dns_get_mx.
CNAMEtarget : FQDN du nom de l'espace DNS qui sert
d'alias à cet enregistrement.
NStarget : FQDN du nom de serveur qui est responsable
de ce nom de domaine.
PTRtarget : nom de domaine vers lequel cet enregistrement pointe.
TXTtxt : chaîne de caractères arbitrairement associée
à cet enregistrement.
HINFOcpu : 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.
CAAflags : Un champ-bit d'un octet : actuellement seul le bit 0 est définit,
signifiant 'critical' (critique) ; les autres bits sont réservés et devrait être ignoré.
tag: Le nom du tag CAA (chaîne alphanumérique ASCII).
value : La valeur du tag CAA (chaîne binaire, peut utiliser des sous-formats).
Pour plus d'informations voir : RFC 6844
SOAmname : 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.
AAAAipv6: adresse IPv6
A6masklen : 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.
SRVpri : (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
NAPTRorder et pref : équivalent à
pri et weight ci-dessus.
flags, services, regex,
et replacement : paramètres tels que définis
dans la RFC 2915.
&reftitle.changelog;
&Version;&Description;7.0.16, 7.1.2
Ajout du support pour les enregistrements de type CAA.
&reftitle.examples;
Exemple avec dns_get_record
]]>
&example.outputs.similar;
Array
(
[host] => php.net
[type] => MX
[pri] => 5
[target] => pair2.php.net
[class] => IN
[ttl] => 6765
)
[1] => Array
(
[host] => php.net
[type] => A
[ip] => 64.246.30.37
[class] => IN
[ttl] => 8125
)
)
]]>
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 additional_records
qui contiendra les enregistrements associés. authoritative_name_servers
est aussi retourné en contenant une liste des serveurs autorité.
]]>
&example.outputs.similar;
Array
(
[host] => php.net
[type] => MX
[pri] => 5
[target] => pair2.php.net
[class] => IN
[ttl] => 6765
)
[1] => Array
(
[host] => php.net
[type] => A
[ip] => 64.246.30.37
[class] => IN
[ttl] => 8125
)
)
Auth NS = Array
(
[0] => Array
(
[host] => php.net
[type] => NS
[target] => remote1.easydns.com
[class] => IN
[ttl] => 10722
)
[1] => Array
(
[host] => php.net
[type] => NS
[target] => remote2.easydns.com
[class] => IN
[ttl] => 10722
)
[2] => Array
(
[host] => php.net
[type] => NS
[target] => ns1.easydns.com
[class] => IN
[ttl] => 10722
)
[3] => Array
(
[host] => php.net
[type] => NS
[target] => ns2.easydns.com
[class] => IN
[ttl] => 10722
)
)
Additional = Array
(
[0] => Array
(
[host] => pair2.php.net
[type] => A
[ip] => 216.92.131.5
[class] => IN
[ttl] => 6766
)
[1] => Array
(
[host] => remote1.easydns.com
[type] => A
[ip] => 64.39.29.212
[class] => IN
[ttl] => 100384
)
[2] => Array
(
[host] => remote2.easydns.com
[type] => A
[ip] => 212.100.224.80
[class] => IN
[ttl] => 81241
)
[3] => Array
(
[host] => ns1.easydns.com
[type] => A
[ip] => 216.220.40.243
[class] => IN
[ttl] => 81241
)
[4] => Array
(
[host] => ns2.easydns.com
[type] => A
[ip] => 216.220.40.244
[class] => IN
[ttl] => 81241
)
)
]]>
&reftitle.seealso;
dns_get_mxdns_check_record