dns_get_record
(PHP 5)
dns_get_record — Lit les données DNS associées à un hôte
Description
$hostname
[, int $type
= DNS_ANY
[, array &$authns
[, array &$addtl
[, bool &$raw
= false
]]]] )
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 optionneltype
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
ouDNS_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'optionDNS_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.
-
raw
-
Dans le cas du mode brut, nous requêtons uniquement le type demandé au lieu de parcourir tous les types avant d'accéder à celui demandé.
Valeurs de retour
dns_get_record() retourne un tableau de tableaux
associatifs, ou FALSE
si une erreur survient.
Chaque tableau contient 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è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. |
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.
|
Historique
Version | Description |
---|---|
5.4.0 |
Ajout du paramètre raw .
|
5.3.0 | Cette fonction est maintenant disponible sous Windows. |
5.3.0 |
Avant cette version, si le paramètre authns
est passé, le paramètre addtl était également
nécessaire.
|
Exemples
Exemple #1 Exemple avec dns_get_record()
<?php $result = dns_get_record("php.net"); print_r($result); ?>
<?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 à :
Result = Array ( [0] => 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 ) )