6.25 Réseau
6 Référence des fonctions
Manuel PHP
. Introduction . Pré-requis . Installation . Configuration à l'exécution . Types de ressources . Constantes pré-définies . checkdnsrr . closelog . debugger_off . debugger_on . define_syslog_variables . dns_check_record . dns_get_mx ->dns_get_record . fsockopen . gethostbyaddr . gethostbyname . gethostbynamel . getmxrr . getprotobyname . getprotobynumber . getservbyname . getservbyport . inet_ntop . inet_pton . ip2long . long2ip . openlog . pfsockopen . socket_get_status . socket_set_blocking . socket_set_timeout . syslog
|
6.25.14 dns_get_record()
Lit les données DNS associées à un hôte
[ Exemples avec dns_get_record ] PHP 5
array
dns_get_record (
string
hostname
,
int
type
,
array
authns
,
array
addtl
)
Note |
dns_get_record n'est pas implémentée
sur les plates-formes Windows ni sur les systèmes *BSD (actuellement).
Utilisez la classe
PEAR Net_DNS .
|
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.
|
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.
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 |
A 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.
|
Les paramètres optionnels
authns
et
addtl
sont passés par référence et, si fournis, ils recevront les enregistrements
de ressources pour les
Authoritative Name Servers
,
et tous les
Additional Records
respectivement.
Voir l'exemple ci-dessous.
Type |
Valeur supplémentaire |
A
|
ip
: une adresse IP v4, 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
pointe.
|
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 rafraichissement.
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.
|
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
.
|
Exemple avec dns_get_record |
<?php $result = dns_get_record("php.net"); print_r($result); ?>
|
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é.
Exemple avec dns_get_record et DNS_ANY |
<?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 'Résultat = '; print_r($result); echo 'Authorité NS = '; print_r($authns); echo 'Additionnel = '; print_r($addtl); ?>
|
Voir aussi
dns_get_mx
et
dns_check_record
.
|