cvs: phpdoc-ja /reference/network/functions dns-get-record.xml

From: Date: Sun, 07 Aug 2005 00:52:46 +0000
Subject: cvs: phpdoc-ja /reference/network/functions dns-get-record.xml
Groups: php.doc.ja 
Request: Send a blank email to doc-ja+get-1108@lists.php.net to get a copy of this message
takagi Sat Aug 6 20:52:46 2005 EDT Modified files: /phpdoc-ja/reference/network/functions dns-get-record.xml Log: added japanese manual.

http://cvs.php.net/diff.php/phpdoc-ja/reference/network/functions/dns-get-record.xml?r1=1.2&r2=1.3&ty=u Index: phpdoc-ja/reference/network/functions/dns-get-record.xml diff -u /dev/null phpdoc-ja/reference/network/functions/dns-get-record.xml:1.3 --- /dev/null Sat Aug 6 20:52:46 2005 +++ phpdoc-ja/reference/network/functions/dns-get-record.xml Sat Aug 6 20:52:45 2005 @@ -0,0 +1,460 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- $Revision: 1.3 $ --> +<!-- EN-Revision: 1.21 Maintainer: takagi Status: ready --> + <refentry id="function.dns-get-record"> + <refnamediv> + <refname>dns_get_record</refname> + <refpurpose> + ホスト名に関連する DNS リソースレコードを取得する + </refpurpose> + </refnamediv> + <refsect1> + <title>説明</title> + <methodsynopsis> + <type>array</type><methodname>dns_get_record</methodname> + <methodparam><type>string</type><parameter>hostname</parameter></methodparam> + <methodparam choice="opt"><type>int</type><parameter>type</parameter></methodparam> + <methodparam choice="opt"><type>array</type><parameter role="reference">authns</parameter></methodparam> + <methodparam><type>array</type><parameter role="reference">addtl</parameter></methodparam> + </methodsynopsis> + <para> + <note> + <simpara> + この関数は Windows プラットフォームでは実装されていません。 + また、(現時点では)*BSD システムでも動作しません。 + <ulink url="&url.php.pear;">PEAR</ulink> の + <ulink url="&url.pear.package;Net_DNS">Net_DNS</ulink> クラスを試してみてください。 + </simpara> + </note> + </para> + <para> + この関数は、連想配列を要素にもつ配列を返します。それぞれの連想配列には + <emphasis>少なくとも</emphasis> 以下のキーが含まれています: + <table> + <title>基本 DNS 属性</title> + <tgroup cols="2"> + <thead> + <row> + <entry>属性</entry> + <entry>意味</entry> + </row> + </thead> + <tbody> + <row> + <entry>host</entry> + <entry> + これ以降の関連するデータが参照する DNS 名。 + </entry> + </row> + <row> + <entry>class</entry> + <entry> + <function>dns_get_record</function> は Internet クラスの + レコードのみを返すので、このパラメータは常に + <literal>IN</literal> を返します。 + </entry> + </row> + <row> + <entry>type</entry> + <entry> + レコード型を表す文字列。type の値に応じて、結果の配列には + 追加の属性が含まれます。以下の表を参照ください。 + </entry> + </row> + <row> + <entry>ttl</entry> + <entry> + このレコードの有効期限。レコードの本来の ttl と一致するとは + <emphasis>限りません</emphasis>。むしろ、ネームサーバへの + クエリにかかった時間をそこから引いたものに一致します。 + </entry> + </row> + </tbody> + </tgroup> + </table> + </para> + <simpara> + <parameter>hostname</parameter> は、正しい DNS ホスト名、すなわち + "www.example.com" のようなものでなければなりません。 + in-addr.arpa 形式の表記を用いた逆引き検索は可能ですが、 + たいていは <function>gethostbyaddr</function> を用いるほうが適当です。 + </simpara> + <para> + デフォルトでは、<function>dns_get_record</function> は + <parameter>hostname</parameter> に関連するすべてのリソースレコードを + 検索します。これを制限するには、オプションの + <parameter>type</parameter> パラメータを指定してください。 + <parameter>type</parameter> は以下のうちのいずれかです。 + <constant>DNS_A</constant>, <constant>DNS_CNAME</constant>, + <constant>DNS_HINFO</constant>, <constant>DNS_MX</constant>, + <constant>DNS_NS</constant>, <constant>DNS_PTR</constant>, + <constant>DNS_SOA</constant>, <constant>DNS_TXT</constant>, + <constant>DNS_AAAA</constant>, <constant>DNS_SRV</constant>, + <constant>DNS_NAPTR</constant>, <constant>DNS_A6</constant>, + <constant>DNS_ALL</constant> or <constant>DNS_ANY</constant> 。 + デフォルトは <emphasis>DNS_ANY</emphasis> です。 + <note> + <para> + プラットフォーム依存の libresolv のおかしな挙動のせいで、 + <constant>DNS_ANY</constant> が常にすべてのレコードを返すとは + 限りません。速度は遅くなりますが、<constant>DNS_ALL</constant> + のほうがより確実にすべてのレコードを取得できます。 + </para> + </note> + </para> + <simpara> + 3 番目、4 番目のオプションの引数 + <parameter>authns</parameter> と <parameter>addtl</parameter> + はリファレンスで渡され、もし指定された場合はそこにそれぞれ + <emphasis>Authoritative Name Servers</emphasis>, + と <emphasis>Additional Records</emphasis> が格納されます。 + 下の例を参照ください。 + </simpara> + <para> + <table> + <title>'type' に応じて連想配列に追加される項目</title> + <tgroup cols="2"> + <thead> + <row> + <entry>レコード型</entry> + <entry>追加項目</entry> + </row> + </thead> + <tbody> + <row> + <entry><literal>A</literal></entry> + <entry> + <literal>ip</literal>: ドット区切り 10 進数形式の IPv4 アドレス。 + </entry> + </row> + <row> + <entry><literal>MX</literal></entry> + <entry> + <literal>pri</literal>: メールエクスチェンジャの優先度。 + 数字が小さいほど優先度が高い。 + <literal>target</literal>: メールエクスチェンジャの FQDN 。 + <function>dns_get_mx</function> も参照ください。 + </entry> + </row> + <row> + <entry><literal>CNAME</literal></entry> + <entry> + <literal>target</literal>: レコードのエイリアスの対象となっている + 場所の FQDN 。 + </entry> + </row> + <row> + <entry><literal>NS</literal></entry> + <entry> + <literal>target</literal>: このホスト名に対する権威をもっている + ネームサーバの FQDN 。 + </entry> + </row> + <row> + <entry><literal>PTR</literal></entry> + <entry> + <literal>target</literal>: レコードが指している、DNS 名前空間内の場所 + </entry> + </row> + <row> + <entry><literal>TXT</literal></entry> + <entry> + <literal>txt</literal>: このレコードに関連付けられている任意の文字列。 + </entry> + </row> + <row> + <entry><literal>HINFO</literal></entry> + <entry> + <literal>cpu</literal>: このレコードが参照しているマシンの CPU を + 識別する IANA 番号。 + <literal>os</literal>: このレコードが参照しているマシン上の OS を + 識別する IANA 番号。 + これらの値の意味については、IANA の + <ulink url="&url.iana.system-names;">Operating System Names</ulink> + を参照ください。 + </entry> + </row> + <row> + <entry><literal>SOA</literal></entry> + <entry> + <literal>mname</literal>: リソースレコードの元となるマシンの + FQDN 。 + <literal>rname</literal>: このドメインの管理責任者の Email アドレス。 + <literal>serial</literal>: ドメインのシリアル番号。 + <literal>refresh</literal>: セカンダリネームサーバがこのドメインの + コピーを更新する際に参照するリフレッシュ間隔(秒単位)。 + <literal>retry</literal>: リフレッシュが失敗した際に 2 度目の + リフレッシュを試みるまでの間隔(秒単位) + <literal>expire</literal>: セカンダリネームサーバが、ゾーンデータの + リフレッシュに失敗した場合にコピーのデータを破棄せず持ち続ける期間 + (秒単位)。 + <literal>minimum-ttl</literal>: クライアントが、一度取得したデータを + 再リクエストすることなしに利用できる最小期間(秒単位)。個々の + リソースレコードによって上書きが可能。 + </entry> + </row> + <row> + <entry><literal>AAAA</literal></entry> + <entry> + <literal>ipv6</literal>: IPv6 アドレス。 + </entry> + </row> + <row> + <entry><literal>A6</literal>(PHP &gt;= 5.1.0)</entry> + <entry> + <literal>masklen</literal>: <parameter>chain</parameter> + で指定された対象から引き継ぐビット長。 + <literal>ipv6</literal>: <parameter>chain</parameter> と + マージするためのこのレコードのアドレス。 + <literal>chain</literal>: <parameter>ipv6</parameter> データと + マージするための親レコード。 + </entry> + </row> + <row> + <entry><literal>SRV</literal></entry> + <entry> + <literal>pri</literal>: (Priority) 値が小さいものが優先されます。 + <literal>weight</literal>: 同じ優先順位の + <parameter>targets</parameter> からランダムに選択する際の重み。 + <literal>target</literal> および <literal>port</literal>: + リクエストされたサービスが存在するホスト名とポート。 + 詳細は <ulink url="&url.rfc;2782">RFC 2782</ulink> を参照ください。 + </entry> + </row> + <row> + <entry><literal>NAPTR</literal></entry> + <entry> + <literal>order</literal> および <literal>pref</literal>: 上の + <parameter>pri</parameter> および <parameter>weight</parameter> と同じ。 + <literal>flags</literal>, <literal>services</literal>, <literal>regex</literal>, + および <literal>replacement</literal>: + <ulink url="&url.rfc;2915">RFC 2915</ulink> で定義されるパラメータ。 + </entry> + </row> + </tbody> + </tgroup> + </table> + </para> + <para> + <note> + <para> + DNS の標準規格により、メールアドレスは user.host 形式で渡されます + (たとえば、hostmaster.example.com が hostmaster@example.com + の代わりとなります)。 + この値をしっかり確認し、<function>mail</function> のような関数で + 利用する前には必要なら変更を加えることを忘れないようにしてください。 + </para> + </note> + </para> + <example> + <title><function>dns_get_record</function> の使用</title> + <programlisting role="php"> +<![CDATA[ +<?php +$result = dns_get_record("php.net"); +print_r($result); +?> +]]> + </programlisting> + <para> + 上の例の出力は例えば以下のようになります: + </para> + <screen> +<![CDATA[ +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 + ) + +) +]]> + </screen> + </example> + <simpara> + MX レコードが解決されれば、たいていはメールサーバの IP アドレスを + 取得したくなるものです。そのため、<function>dns_get_record</function> + は <parameter>addtl</parameter> に関連するレコードを含めて返します。 + また、<parameter>authns</parameter> には権威のあるネームサーバの + リストを含めて返します。 + </simpara> + <example> + <title><function>dns_get_record</function> と DNS_ANY の使用</title> + <programlisting role="php"> +<![CDATA[ +<?php +/* php.net の "ANY" レコードを要求し、 + それに付随する情報を格納した配列を + 作成する。 + $authns にはネームサーバの一覧が、 + また $addtl には追加レコードが + それぞれ格納される。 */ +$result = dns_get_record("php.net", DNS_ANY, $authns, $addtl); +echo "Result = "; +print_r($result); +echo "Auth NS = "; +print_r($authns); +echo "Additional = "; +print_r($addtl); +?> +]]> + </programlisting> + <para> + 上の例の出力は例えば以下のようになります: + </para> + <screen> +<![CDATA[ +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 + ) + +) +]]> + </screen> + </example> + <simpara> + <function>dns_get_mx</function> + および <function>dns_check_record</function> も参照ください。 + </simpara> + </refsect1> + </refentry> + +<!-- Keep this comment at the end of the file +Local variables: +mode: sgml +sgml-omittag:t +sgml-shorttag:t +sgml-minimize-attributes:nil +sgml-always-quote-attributes:t +sgml-indent-step:1 +sgml-indent-data:t +indent-tabs-mode:nil +sgml-parent-document:nil +sgml-default-dtd-file:"../../../../manual.ced" +sgml-exposed-tags:nil +sgml-local-catalogs:nil +sgml-local-ecat-files:nil +End: +vim600: syn=xml fen fdm=syntax fdl=2 si +vim: et tw=78 syn=sgml +vi: ts=1 sw=1 +-->
« previous php.doc.ja (#1108) next »