Source of: /manual/fr/function.dns-get-record.php
<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = 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',
),
'up' =>
array (
0 => 'ref.network.php',
1 => 'Fonctions réseaux',
),
'prev' =>
array (
0 => 'function.dns-get-mx.php',
1 => 'dns_get_mx',
),
'next' =>
array (
0 => 'function.fsockopen.php',
1 => 'fsockopen',
),
);
$setup["toc"] = $TOC;
$setup["parents"] = $PARENTS;
manual_setup($setup);
manual_header();
?>
<div id="function.dns-get-record" class="refentry">
<div class="refnamediv">
<h1 class="refname">dns_get_record</h1>
<p class="verinfo">(PHP 5)</p><p class="refpurpose"><span class="refname">dns_get_record</span> — <span class="dc-title">Lit les données DNS associées à un hôte</span></p>
</div>
<a name="function.dns-get-record.description"></a><div class="refsect1 description">
<h3 class="title">Description</h3>
<div class="methodsynopsis dc-description">
<span class="type">array</span> <span class="methodname"><b>dns_get_record</b></span>
( <span class="methodparam"><span class="type">string</span> <tt class="parameter">$hostname</tt></span>
[, <span class="methodparam"><span class="type">int</span> <tt class="parameter">$type</tt><span class="initializer">= DNS_ANY</span></span>
[, <span class="methodparam"><span class="type">array</span> <tt class="parameter reference">&$authns</tt></span>
[, <span class="methodparam"><span class="type">array</span> <tt class="parameter reference">&$addtl</tt></span>
]]] )</div>
<p class="para rdfs-comment">
Lit les données DNS associées à l'hôte
<i><tt class="parameter">hostname</tt></i>
.
</p>
</div>
<a name="function.dns-get-record.parameters"></a><div class="refsect1 parameters">
<h3 class="title">Liste de paramètres</h3>
<p class="para">
</p><dl>
<dt class="varlistentry">
<span class="term"><i><tt class="parameter">hostname</tt></i>
</span>
</dt><dd class="listitem">
<p class="para">
<i><tt class="parameter">hostname</tt></i>
doit être un nom d'hôte DNS valide, comme
<i>www.example.com</i>. Des résolutions inversées peuvent
être faites avec la notation <i>in-addr.arpa</i>, mais la fonction
<a href="function.gethostbyaddr.php" class="function">gethostbyaddr()</a> est plus efficace pour faire des
résolutions inverses.
</p>
<blockquote><p><b class="note">Note</b>:
En terme de standards DNS, les adresses email sont données au format
<i>utilisateur.hote</i> (par exemple :
<i>webmestre.example.com</i> au contraire du
format <i>webmestre@example.com</i>). N'oubliez pas
de vérifier cette adresse et de la modifier si nécessaire avant
de la passer à la fonction <a href="function.mail.php" class="function">mail()</a>.
<br />
</p></blockquote>
</dd>
<dt class="varlistentry">
<span class="term"><i><tt class="parameter">type</tt></i>
</span>
</dt><dd class="listitem">
<p class="para">
Par défaut, <b>dns_get_record()</b> va rechercher toutes les
ressources associées à <i><tt class="parameter">hostname</tt></i>
. Pour limiter la
taille de la requête, le paramètre optionnel <i><tt class="parameter">type</tt></i>
peut prendre l'une des valeurs constantes suivantes :
<b><tt class="constant">DNS_A</tt></b>, <b><tt class="constant">DNS_CNAME</tt></b>,
<b><tt class="constant">DNS_HINFO</tt></b>, <b><tt class="constant">DNS_MX</tt></b>,
<b><tt class="constant">DNS_NS</tt></b>, <b><tt class="constant">DNS_PTR</tt></b>,
<b><tt class="constant">DNS_SOA</tt></b>, <b><tt class="constant">DNS_TXT</tt></b>,
<b><tt class="constant">DNS_AAAA</tt></b>, <b><tt class="constant">DNS_SRV</tt></b>,
<b><tt class="constant">DNS_NAPTR</tt></b>, <b><tt class="constant">DNS_A6</tt></b>,
<b><tt class="constant">DNS_ALL</tt></b> ou <b><tt class="constant">DNS_ANY</tt></b>.
Par défaut, il vaut <em class="emphasis">DNS_ANY</em>.
</p>
<blockquote><p><b class="note">Note</b>:
À cause des performances excentriques de la bibliothèque libresolv,
suivant les plates-formes, <b><tt class="constant">DNS_ANY</tt></b> ne retournera
pas toujours tous les enregistrements, et l'option <b><tt class="constant">DNS_ALL</tt></b>,
bien que plus lente, le fera de manière plus sûre.
<br />
</p></blockquote>
</dd>
<dt class="varlistentry">
<span class="term"><i><tt class="parameter">authns</tt></i>
</span>
</dt><dd class="listitem">
<p class="para">
Passé par référence, et, s'il est fourni, recevra les
enregistrements de ressources pour les
<em class="emphasis">Authoritative Name Servers</em>.
</p>
</dd>
<dt class="varlistentry">
<span class="term"><i><tt class="parameter">addtl</tt></i>
</span>
</dt><dd class="listitem">
<p class="para">
Passé par référence, et, s'il est fourni, recevra tous les
<em class="emphasis">enregistrements supplémentaires</em>.
</p>
</dd>
</dl>
<p>
</p>
</div>
<a name="function.dns-get-record.returnvalues"></a><div class="refsect1 returnvalues">
<h3 class="title">Valeurs de retour</h3>
<p class="para">
<span class="methodname"><b>dns_get_record</b></span> retourne un tableau associatif, contenant
<em class="emphasis">au minimum</em> les index suivants :
</p><table class="doctable table">
<caption><b>Attributs de base DNS</b></caption>
<thead valign="middle">
<tr valign="middle">
<th>Attribut</th>
<th>Signification</th>
</tr>
</thead>
<tbody valign="middle" class="tbody">
<tr valign="middle">
<td align="left">host</td>
<td align="left">
L'enregistrement de l'espace de nom DNS qui est décrit par les autres
données.
</td>
</tr>
<tr valign="middle">
<td align="left">class</td>
<td align="left">
<b>dns_get_record()</b> ne retourne que la classe d'enregistrement
Internet et, en tant que tel, cet index vaudra toujours <i>IN</i>.
</td>
</tr>
<tr valign="middle">
<td align="left">type</td>
<td align="left">
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.
</td>
</tr>
<tr valign="middle">
<td align="left">ttl</td>
<td align="left">
<i>"Time To Live"</i> : durée avant expiration de l'enregistrement.
Cette valeur est <em class="emphasis">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>
<p class="para">
</p><table class="doctable table">
<caption><b>Autres index disponibles suivant le type DNS</b></caption>
<thead valign="middle">
<tr valign="middle">
<th>Type</th>
<th>Valeur supplémentaire</th>
</tr>
</thead>
<tbody valign="middle" class="tbody">
<tr valign="middle">
<td align="left"><i>A</i></td>
<td align="left">
<i>ip</i>: une adresse IPv4, au format numérique.
</td>
</tr>
<tr valign="middle">
<td align="left"><i>MX</i></td>
<td align="left">
<i>pri</i> : priorité du serveur de mail.
Les nombres faibles indiquent une priorité importante.
<i>target</i> : FQDN du serveur de mail.
Voir aussi <a href="function.dns-get-mx.php" class="function">dns_get_mx()</a>.
</td>
</tr>
<tr valign="middle">
<td align="left"><i>CNAME</i></td>
<td align="left">
<i>target</i> : FQDN du nom de l'espace DNS qui sert
d'alias à cet enregistrement.
</td>
</tr>
<tr valign="middle">
<td align="left"><i>NS</i></td>
<td align="left">
<i>target</i> : FQDN du nom de serveur qui est responsable
de ce nom de domaine.
</td>
</tr>
<tr valign="middle">
<td align="left"><i>PTR</i></td>
<td align="left">
<i>target</i> : nom de domaine vers lequel cet enregistrement
</td>
</tr>
<tr valign="middle">
<td align="left"><i>TXT</i></td>
<td align="left">
<i>txt</i> : chaîne de caractères arbitrairement associée
à cet enregistrement.
</td>
</tr>
<tr valign="middle">
<td align="left"><i>HINFO</i></td>
<td align="left">
<i>cpu</i> : numéro IANA désignant le processeur de la machine
référencée par cet enregistrement.
<i>os</i> : numéro IANA désignant le système d'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">» <i>Operating System Names</i></a>
pour connaître la signification de ces valeurs.
</td>
</tr>
<tr valign="middle">
<td align="left"><i>SOA</i></td>
<td align="left">
<i>mname</i> : FQDN de la source de cet enregistrement.
<i>rname</i> : adresse email du contact administratif de
ce domaine.
<i>serial</i> : numéro de série du nom de domaine.
<i>refresh</i> : intervalle de rafraîchissement (en secondes)
que les serveurs de noms secondaires doivent utiliser pour mettre
en cache ce nom de domaine.
<i>retry</i> : durée (en secondes) d'attente après un rafraîchissement
échoué, avant de faire une seconde tentative.
<i>expire</i> : durée maximale (en secondes) de conservation
d'une copie des données de zone sans pouvoir faire de rafraîchissement.
<i>minimum-ttl</i> : 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.
</td>
</tr>
<tr valign="middle">
<td align="left"><i>AAAA</i></td>
<td align="left">
<i>ipv6</i>: adresse IPv6
</td>
</tr>
<tr valign="middle">
<td align="left"><i>A6</i>(PHP >= 5.1.0)</td>
<td align="left">
<i>masklen</i> : longueur (en octets) à hériter depuis
la cible spécifiée par <i><tt class="parameter">chain</tt></i>
.
<i>ipv6</i> : adresse pour que cet enregistrement spécifique fusionne
avec <i><tt class="parameter">chain</tt></i>
.
<i>chain</i> : l'enregistrement parent à fusionner avec les données
<i><tt class="parameter">ipv6</tt></i>
.
</td>
</tr>
<tr valign="middle">
<td align="left"><i>SRV</i></td>
<td align="left">
<i>pri</i> : (priorité) les priorités les plus basses doivent
être utilisées en premier.
<i>weight</i> : classement pour choisir aléatoirement parmi les
serveurs <i><tt class="parameter">targets</tt></i>
.
<i>target</i> et <i>port</i> : nom d'hôte et
port où le service est disponible.
Pour plus d'informations, voir : <a href="http://www.faqs.org/rfcs/rfc2782" class="link external">» RFC 2782</a>
</td>
</tr>
<tr valign="middle">
<td align="left"><i>NAPTR</i></td>
<td align="left">
<i>order</i> et <i>pref</i> : équivalent à
<i><tt class="parameter">pri</tt></i>
et <i><tt class="parameter">weight</tt></i>
ci-dessus.
<i>flags</i>, <i>services</i>, <i>regex</i>,
et <i>replacement</i> : paramètres tels que définis
dans la <a href="http://www.faqs.org/rfcs/rfc2915" class="link external">» RFC 2915</a>.
</td>
</tr>
</tbody>
</table>
<p>
</p>
</div>
<a name="function.dns-get-record.changelog"></a><div class="refsect1 changelog">
<h3 class="title">Historique</h3>
<p class="para">
</p><table class="doctable informaltable">
<thead valign="middle">
<tr valign="middle">
<th>Version</th>
<th>Description</th>
</tr>
</thead>
<tbody valign="middle" class="tbody">
<tr valign="middle">
<td align="left">5.3.0</td>
<td align="left">
Cette fonction est maintenant disponible sous Windows.
</td>
</tr>
</tbody>
</table>
<p>
</p>
</div>
<a name="function.dns-get-record.examples"></a><div class="refsect1 examples">
<h3 class="title">Exemples</h3>
<p class="para">
</p><div class="example">
<p><b>Exemple #1 Exemple avec <b>dns_get_record()</b></b></p>
<div class="example-contents programlisting">
<div class="phpcode"><code><span style="color: #000000">
<span style="color: #0000BB"><?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">?></span>
</span>
</code></div>
</div>
<div class="example-contents para"><p>L'exemple ci-dessus va afficher quelque chose de similaire à :</p></div>
<div class="example-contents screen">
<div class="cdata"><pre>
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
)
)
</pre></div>
</div>
</div><p>
</p><div class="example">
<p><b>Exemple #2 Exemple avec <b>dns_get_record()</b> et DNS_ANY</b></p>
<div class="example-contents para"><p>
Comme il est très courant de rechercher l'IP d'un serveur,
une fois que le champ MX a été résolu, <b>dns_get_record()</b>
retournera aussi un tableau dans le paramètre <i><tt class="parameter">addtl</tt></i>
qui contiendra les enregistrements associés. <i><tt class="parameter">authns</tt></i>
est aussi retourné en contenant une liste des serveurs autorité.
</p></div>
<div class="example-contents programlisting">
<div class="phpcode"><code><span style="color: #000000">
<span style="color: #0000BB"><?php<br /></span><span style="color: #FF8000">/* Demande tous ("ANY") les enregistrements pour php.net, <br /> puis crée les tableaus $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">?></span>
</span>
</code></div>
</div>
<div class="example-contents para"><p>L'exemple ci-dessus va afficher quelque chose de similaire à :</p></div>
<div class="example-contents screen">
<div class="cdata"><pre>
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
)
)
</pre></div>
</div>
</div><p>
</p>
</div>
<a name="function.dns-get-record.notes"></a><div class="refsect1 notes">
<h3 class="title">Notes</h3>
<blockquote><p><b class="note">Note</b>:
Pour une compatibilité avec les versions non supportées, comme
sur les systèmes *BSD (incluant Mac), utilisez la classe
<a href="http://pear.php.net/" class="link external">» PEAR</a>
<a href="http://pear.php.net/package/Net_DNS" class="link external">» Net_DNS</a>.
<br />
</p></blockquote>
</div>
<a name="function.dns-get-record.seealso"></a><div class="refsect1 seealso">
<h3 class="title">Voir aussi</h3>
<p class="para">
</p><ul class="simplelist">
<li class="member"><a href="function.dns-get-mx.php" class="function" rel="rdfs-seeAlso">dns_get_mx()</a> - Alias de getmxrr</li>
<li class="member"><a href="function.dns-check-record.php" class="function" rel="rdfs-seeAlso">dns_check_record()</a> - Alias de checkdnsrr</li>
</ul><p>
</p>
</div>
</div><?php manual_footer(); ?>