<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.network.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'fr',
  ),
  'this' => 
  array (
    0 => 'function.dns-get-record.php',
    1 => 'dns_get_record',
    2 => 'Lit les donn&eacute;es DNS associ&eacute;es &agrave; un h&ocirc;te',
  ),
  'up' => 
  array (
    0 => 'ref.network.php',
    1 => 'Fonctions r&eacute;seaux',
  ),
  'prev' => 
  array (
    0 => 'function.dns-get-mx.php',
    1 => 'dns_get_mx',
  ),
  'next' => 
  array (
    0 => 'function.fsockopen.php',
    1 => 'fsockopen',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    'path' => 'reference/network/functions/dns-get-record.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.dns-get-record" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">dns_get_record</h1>
  <p class="verinfo">(PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">dns_get_record</span> &mdash; <span class="dc-title">Lit les données DNS associées à un hôte</span></p>

 </div>
 
 <div class="refsect1 description" id="refsect1-function.dns-get-record-description">
  <h3 class="title">Description</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>dns_get_record</strong></span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$hostname</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$type</code><span class="initializer"> = <strong><code><a href="network.constants.php#constant.dns-any">DNS_ANY</a></code></strong></span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.array.php" class="type array">array</a></span> <code class="parameter reference">&$authoritative_name_servers</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong></span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.array.php" class="type array">array</a></span> <code class="parameter reference">&$additional_records</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong></span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span> <code class="parameter">$raw</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong></span></span><br>): <span class="type"><span class="type"><a href="language.types.array.php" class="type array">array</a></span>|<span class="type"><a href="language.types.singleton.php" class="type false">false</a></span></span></div>

  <p class="para rdfs-comment">
   Lit les données DNS associées à l&#039;hôte
   <code class="parameter">hostname</code>.
  </p>
 </div>

 
 <div class="refsect1 parameters" id="refsect1-function.dns-get-record-parameters">
  <h3 class="title">Liste de paramètres</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">hostname</code></dt>
     <dd>
      <p class="para">
       <code class="parameter">hostname</code> doit être un nom d&#039;hôte DNS valide, comme
       <code class="literal">www.example.com</code>. Des résolutions inversées peuvent
       être faites avec la notation <code class="literal">in-addr.arpa</code>, mais la fonction 
       <span class="function"><a href="function.gethostbyaddr.php" class="function">gethostbyaddr()</a></span> est plus efficace pour faire des
       résolutions inverses.
      </p>
      <blockquote class="note"><p><strong class="note">Note</strong>: 
       <p class="para">
        En termes de standards DNS, les adresses email sont données au format
        <code class="literal">utilisateur.hote</code> (par exemple : 
        <code class="literal">webmestre.example.com</code> au contraire du 
        format <code class="literal">webmestre@example.com</code>). N&#039;oubliez pas
        de vérifier cette adresse et de la modifier si nécessaire avant
        de la passer à la fonction <span class="function"><a href="function.mail.php" class="function">mail()</a></span>.
       </p>
      </p></blockquote>
     </dd>
    
    
     <dt><code class="parameter">type</code></dt>
     <dd>
      <p class="para">
       Par défaut, <span class="function"><strong>dns_get_record()</strong></span> va rechercher toutes les
       ressources associées à <code class="parameter">hostname</code>.
       Pour limiter la requête, utiliser l&#039;une des constantes
       <strong><code><a href="network.constants.php#constant.dns-any">DNS_<span class="replaceable">*</span></a></code></strong>.
      </p>
     </dd>
    
    
     <dt><code class="parameter">authoritative_name_servers</code></dt>
     <dd>
      <p class="para">
       Passé par référence, et, s&#039;il est fourni, recevra les
       enregistrements de ressources pour les
       <em>Authoritative Name Servers</em>.
      </p>
     </dd>
    
    
     <dt><code class="parameter">additional_records</code></dt>
     <dd>
      <p class="para">
       Passé par référence, et, s&#039;il est fourni, recevra tous les
       <em>enregistrements supplémentaires</em>.
      </p>
     </dd>
    
    
     <dt><code class="parameter">raw</code></dt>
     <dd>
      <p class="para">
       Le <code class="parameter">type</code> sera interprété comme un ID de type DNS brut
       (les constantes <code class="literal">DNS_<span class="replaceable">*</span></code> ne peuvent pas être utilisées).
       La valeur de retour contiendra une clé <code class="literal">data</code>,
       qui doit être manuellement analysée.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>

 
 <div class="refsect1 returnvalues" id="refsect1-function.dns-get-record-returnvalues">
  <h3 class="title">Valeurs de retour</h3>
  <p class="para">
   <span class="methodname"><strong>dns_get_record()</strong></span> retourne un tableau de tableaux
   associatifs,  ou <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> si une erreur survient.
   Chaque tableau contient <em>au minimum</em> les index suivants :
   <table class="doctable table">
    <caption><strong>Attributs de base DNS</strong></caption>
    
     <thead>
      <tr>
       <th>Attribut</th>
       <th>Signification</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>host</td>
       <td>
        L&#039;enregistrement de l&#039;espace de noms DNS qui est décrit par les autres
        données.
       </td>
      </tr>

      <tr>
       <td>class</td>
       <td>
        <span class="function"><strong>dns_get_record()</strong></span> ne retourne que la classe d&#039;enregistrement
        Internet et, en tant que tel, cet index vaudra toujours <code class="literal">IN</code>.
       </td>
      </tr>

      <tr>
       <td>type</td>
       <td>
        Chaîne de caractères contenant le type d&#039;enregistrement. Des attributs
        supplémentaires seront aussi disponibles dans le tableau suivant la
        valeur de ce type. Se reporter à la table ci-dessous.
       </td>
      </tr>

      <tr>
       <td>ttl</td>
       <td>
        <code class="literal">&quot;Time To Live&quot;</code> : durée avant expiration de l&#039;enregistrement. 
        Cette valeur est <em>différente</em> 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.
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
  <p class="para">
   <table class="doctable table">
    <caption><strong>Autres index disponibles suivant le type DNS</strong></caption>
    
     <thead>
      <tr>
       <th>Type</th>
       <th>Valeur supplémentaire</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td><code class="literal">A</code></td>
       <td>
        <code class="literal">ip</code>: une adresse IPv4, au format numérique.
       </td>
      </tr>

      <tr>
       <td><code class="literal">MX</code></td>
       <td>
        <code class="literal">pri</code> : priorité du serveur de mail.
        Les nombres faibles indiquent une priorité importante.
        <code class="literal">target</code> : FQDN du serveur de mail.
        Voir aussi <span class="function"><a href="function.dns-get-mx.php" class="function">dns_get_mx()</a></span>.
       </td>
      </tr>

      <tr>
       <td><code class="literal">CNAME</code></td>
       <td>
        <code class="literal">target</code> : FQDN du nom de l&#039;espace DNS qui sert
        d&#039;alias à cet enregistrement.
       </td>
      </tr>

      <tr>
       <td><code class="literal">NS</code></td>
       <td>
        <code class="literal">target</code> : FQDN du nom de serveur qui est responsable
        de ce nom de domaine.
       </td>
      </tr>

      <tr>
       <td><code class="literal">PTR</code></td>
       <td>
        <code class="literal">target</code> : nom de domaine vers lequel cet enregistrement pointe.
       </td>
      </tr>

      <tr>
       <td><code class="literal">TXT</code></td>
       <td>
        <code class="literal">txt</code> : chaîne de caractères arbitrairement associée
        à cet enregistrement.
       </td>
      </tr>

      <tr>
       <td><code class="literal">HINFO</code></td>
       <td>
        <code class="literal">cpu</code> : numéro IANA désignant le processeur de la machine
        référencée par cet enregistrement.
        <code class="literal">os</code> : numéro IANA désignant le système d&#039;exploitation
        de la machine référencée par cet enregistrement.
        Voir <a href="http://www.iana.org/assignments/operating-system-names" class="link external">&raquo;&nbsp;<code class="literal">Operating System Names</code></a>
        pour connaître la signification de ces valeurs.
       </td>
      </tr>

      <tr>
       <td><code class="literal">CAA</code></td>
       <td>
        <code class="literal">flags</code> : Un champ-bit d&#039;un octet : actuellement seul le bit 0 est défini,
        signifiant &#039;critical&#039; (critique) ; les autres bits sont réservés et devraient être ignorés.
        <code class="literal">tag</code>: Le nom du tag CAA (chaîne alphanumérique ASCII).
        <code class="literal">value</code> : La valeur du tag CAA (chaîne binaire, peut utiliser des sous-formats).
        Pour plus d&#039;informations voir : <a href="https://datatracker.ietf.org/doc/html/rfc6844" class="link external">&raquo;&nbsp;RFC 6844</a>
       </td>
      </tr>

      <tr>
       <td><code class="literal">SOA</code></td>
       <td>
        <code class="literal">mname</code> : FQDN de la source de cet enregistrement.
        <code class="literal">rname</code> : adresse email du contact administratif de
        ce domaine.
        <code class="literal">serial</code> : numéro de série du nom de domaine.
        <code class="literal">refresh</code> : intervalle de rafraîchissement (en secondes)
        que les serveurs de noms secondaires doivent utiliser pour mettre
        en cache ce nom de domaine.
        <code class="literal">retry</code> : durée (en secondes) d&#039;attente après un rafraîchissement
        échoué, avant de faire une seconde tentative.
        <code class="literal">expire</code> : durée maximale (en secondes) de conservation
        d&#039;une copie des données de zone sans pouvoir faire de rafraîchissement.
        <code class="literal">minimum-ttl</code> : durée minimale (en secondes) pendant laquelle un
        client conserve des données de zone avant qu&#039;il ne soumette une nouvelle
        requête. Cette configuration peut être annulée par d&#039;autres enregistrements.
       </td>
      </tr>

      <tr>
       <td><code class="literal">AAAA</code></td>
       <td>
        <code class="literal">ipv6</code>: adresse IPv6
       </td>
      </tr>

      <tr>
       <td><code class="literal">A6</code></td>
       <td>
        <code class="literal">masklen</code> : longueur (en bits) à hériter depuis
        la cible spécifiée par <code class="parameter">chain</code>.
        <code class="literal">ipv6</code> : adresse pour que cet enregistrement spécifique fusionne
        avec <code class="parameter">chain</code>.
        <code class="literal">chain</code> : l&#039;enregistrement parent à fusionner avec les données
        <code class="parameter">ipv6</code>.
       </td>
      </tr>

      <tr>
       <td><code class="literal">SRV</code></td>
       <td>
        <code class="literal">pri</code> : (priorité) les priorités les plus basses doivent
        être utilisées en premier.
        <code class="literal">weight</code> : classement pour choisir aléatoirement parmi les
        serveurs <code class="parameter">targets</code>.
        <code class="literal">target</code> et <code class="literal">port</code> : nom d&#039;hôte et
        port où le service est disponible.
        Pour plus d&#039;informations, voir : <a href="https://datatracker.ietf.org/doc/html/rfc2782" class="link external">&raquo;&nbsp;RFC 2782</a>
       </td>
      </tr>

      <tr>
       <td><code class="literal">NAPTR</code></td>
       <td>
        <code class="literal">order</code> et <code class="literal">pref</code> : équivalent à
        <code class="parameter">pri</code> et <code class="parameter">weight</code> ci-dessus.
        <code class="literal">flags</code>, <code class="literal">services</code>, <code class="literal">regex</code>,
        et <code class="literal">replacement</code> : paramètres tels que définis
        dans la <a href="https://datatracker.ietf.org/doc/html/rfc2915" class="link external">&raquo;&nbsp;RFC 2915</a>.
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </div>

 
 <div class="refsect1 changelog" id="refsect1-function.dns-get-record-changelog">
  <h3 class="title">Historique</h3>
  <p class="para">
   <table class="doctable informaltable">
    
     <thead>
      <tr>
       <th>Version</th>
       <th>Description</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>7.0.16, 7.1.2</td>
       <td>
        Ajout du support des enregistrements de type CAA.
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </div>

 
 <div class="refsect1 examples" id="refsect1-function.dns-get-record-examples">
  <h3 class="title">Exemples</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Exemple #1 Exemple avec <span class="function"><strong>dns_get_record()</strong></span></strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$result </span><span style="color: #007700">= </span><span style="color: #0000BB">dns_get_record</span><span style="color: #007700">(</span><span style="color: #DD0000">"php.net"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$result</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>Résultat de l&#039;exemple ci-dessus est similaire à :</p></div>
    <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">Array
(
    [0] =&gt; Array
        (
            [host] =&gt; php.net
            [type] =&gt; MX
            [pri] =&gt; 5
            [target] =&gt; pair2.php.net
            [class] =&gt; IN
            [ttl] =&gt; 6765
        )

    [1] =&gt; Array
        (
            [host] =&gt; php.net
            [type] =&gt; A
            [ip] =&gt; 64.246.30.37
            [class] =&gt; IN
            [ttl] =&gt; 8125
        )

)</pre>
</div>
    </div>
   </div>
   <div class="example" id="example-2">
    <p><strong>Exemple #2 Exemple avec <span class="function"><strong>dns_get_record()</strong></span> et DNS_ANY</strong></p>
    <div class="example-contents"><p>
     Comme il est très courant de rechercher l&#039;IP d&#039;un serveur,
     une fois que l&#039;enregistrement MX a été résolu, <span class="function"><strong>dns_get_record()</strong></span>
     retourne aussi un tableau dans le paramètre <code class="parameter">additional_records</code>
     qui contiendra les enregistrements associés. <code class="parameter">authoritative_name_servers</code>
     est aussi retourné en contenant une liste des serveurs autorité.
    </p></div>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/* Demande tous ("ANY") les enregistrements pour php.net, <br />   puis crée les tableaux $authns et $addtl<br />   contenant une liste des noms de serveurs, et tous<br />   les enregistrements qui vont avec<br />   */<br /></span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">dns_get_record</span><span style="color: #007700">(</span><span style="color: #DD0000">"php.net"</span><span style="color: #007700">, </span><span style="color: #0000BB">DNS_ANY</span><span style="color: #007700">, </span><span style="color: #0000BB">$authns</span><span style="color: #007700">, </span><span style="color: #0000BB">$addtl</span><span style="color: #007700">);<br />echo </span><span style="color: #DD0000">"Result = "</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$result</span><span style="color: #007700">);<br />echo </span><span style="color: #DD0000">"Auth NS = "</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$authns</span><span style="color: #007700">);<br />echo </span><span style="color: #DD0000">"Additional = "</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$addtl</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>Résultat de l&#039;exemple ci-dessus est similaire à :</p></div>
    <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">Result = Array
(
    [0] =&gt; Array
        (
            [host] =&gt; php.net
            [type] =&gt; MX
            [pri] =&gt; 5
            [target] =&gt; pair2.php.net
            [class] =&gt; IN
            [ttl] =&gt; 6765
        )

    [1] =&gt; Array
        (
            [host] =&gt; php.net
            [type] =&gt; A
            [ip] =&gt; 64.246.30.37
            [class] =&gt; IN
            [ttl] =&gt; 8125
        )

)
Auth NS = Array
(
    [0] =&gt; Array
        (
            [host] =&gt; php.net
            [type] =&gt; NS
            [target] =&gt; remote1.easydns.com
            [class] =&gt; IN
            [ttl] =&gt; 10722
        )

    [1] =&gt; Array
        (
            [host] =&gt; php.net
            [type] =&gt; NS
            [target] =&gt; remote2.easydns.com
            [class] =&gt; IN
            [ttl] =&gt; 10722
        )

    [2] =&gt; Array
        (
            [host] =&gt; php.net
            [type] =&gt; NS
            [target] =&gt; ns1.easydns.com
            [class] =&gt; IN
            [ttl] =&gt; 10722
        )

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

)
Additional = Array
(
    [0] =&gt; Array
        (
            [host] =&gt; pair2.php.net
            [type] =&gt; A
            [ip] =&gt; 216.92.131.5
            [class] =&gt; IN
            [ttl] =&gt; 6766
        )

    [1] =&gt; Array
        (
            [host] =&gt; remote1.easydns.com
            [type] =&gt; A
            [ip] =&gt; 64.39.29.212
            [class] =&gt; IN
            [ttl] =&gt; 100384
        )

    [2] =&gt; Array
        (
            [host] =&gt; remote2.easydns.com
            [type] =&gt; A
            [ip] =&gt; 212.100.224.80
            [class] =&gt; IN
            [ttl] =&gt; 81241
        )

    [3] =&gt; Array
        (
            [host] =&gt; ns1.easydns.com
            [type] =&gt; A
            [ip] =&gt; 216.220.40.243
            [class] =&gt; IN
            [ttl] =&gt; 81241
        )

    [4] =&gt; Array
        (
            [host] =&gt; ns2.easydns.com
            [type] =&gt; A
            [ip] =&gt; 216.220.40.244
            [class] =&gt; IN
            [ttl] =&gt; 81241
        )

)</pre>
</div>
    </div>
   </div>
  </p>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.dns-get-record-seealso">
  <h3 class="title">Voir aussi</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="function.dns-get-mx.php" class="function" rel="rdfs-seeAlso">dns_get_mx()</a> - Alias de getmxrr</span></li>
    <li><span class="function"><a href="function.dns-check-record.php" class="function" rel="rdfs-seeAlso">dns_check_record()</a> - Alias de checkdnsrr</span></li>
   </ul>
  </p>
 </div>

 
</div><?php manual_footer($setup); ?>