Services webmasters
Partenaires
Jeux concours gratuits
 
dns_get_mx
<<<
dns_get_record fsockopen
>>>

7.66 Réseau
7 Index des fonctions
 Manuel PHP

Introduction
Pré-requis
Installation
Configuration à l'exécution
Types de ressources
Constantes prédefinies
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
ip2long
long2ip
openlog
pfsockopen
socket_get_status
socket_set_blocking
socket_set_timeout
syslog

7.66.14 dns_get_record() Lit les données DNS associées à un hôte

[ Exemples avec dns_get_record ]   PHP 5 CVS only

array  dns_get_record ( string   hostname , int   type , array   &authns , array   &addtl )

Note

dns_get_record n'est pas implémentée sur les plate-formes Windows. Utilisez alors la classe PEAR Net_DNS .

dns_get_record retourne un tabluau associatif, contenant au minimum les index suivants : host , type , class , ttl .
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 disponbiles 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 par exemple www.exemple.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_ALL et DNS_ANY . Par défaut, il vaut DNS_ANY .
Note

A cause des performances excentriques de la librairie libresolv, suivant les plate-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é 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.

Suivant le type de valeur de l'index type , le tableau associatif peut aussi contenir les index suivants : ip , pri , target , cpu , os , mname , rname , serial , refresh , retry , expire , minimum-ttl , txt .

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 sur 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 : Interval 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 seconde) d'attente après un rafraîchissement échoué, avant de faire une seconde tentative. expire : Durée maximale (en seconde) de conservation d'une copie des données de zone sans pouvoir faire de rafraichissement. minimum-ttl : Durée minimale (en seconde) pour 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
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.exemple.com au contraire du format webmestre@exemple.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);
?>

/*
Produit un affichage similaire à ceci :
----------------------------------------

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
        )

)
*/

Comme il est très courant de rechercher l'IP d'un serveur, une fois que le champs 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,
   pu 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);
print
"Résultat = ";
print_r($result);
print
"Authorité NS = ";
print_r($authns);
print
"Additionnel = ";
print_r($addtl);
?>

/*
Produit un affichage similaire à ceci :
-----------------------------------------

Résultat = 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
        )

)
Authortité NS = Array
(
    [0] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => remote1.easydns.com
            [class] => IN
            [ttl] => 10722
        )

    [1] => Array
        (
            [host] => php.net
            [type] => NS
     
            [class] => IN
            [ttl] => 10722
        )

    [3] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => ns2.easydns.com
            [class] => IN
            [ttl] => 10722
        )

)
Additionnel = 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
        &nb

Voir aussi dns_get_mx et dns_check_record

<< dns_get_record >>
dns_get_mx Réseau fsockopen
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -