7.67 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.67.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 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,     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             [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         )
  ) 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             [ttl] => 81241         )
  ) */
 
 |   
      Voir aussi
        
dns_get_mx
  et
        
dns_check_record
 
 |