[GENERIC] Zend_Translate:
[zend.git] / documentation / manual / ja / module_specs / Zend_Validate-Hostname.xml
bloba6c12044197646c725e5e3f7b330255d3b6e63cb
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Reviewed: no -->
3 <!-- EN-Revision: 21247 -->
4 <sect2 id="zend.validate.set.hostname">
6     <title>ホスト名</title>
8     <para>
9         <classname>Zend_Validate_Hostname</classname> は、ホスト名が仕様を満たしているかどうかの検証を行います。
10         三種類の形式のホスト名、つまり <acronym>DNS</acronym> ホスト名
11         (たとえば domain.com)、IP アドレス (たとえば 1.2.3.4)
12         そしてローカルホスト名 (たとえば localhost) の検証が可能です。
13         デフォルトでは <acronym>DNS</acronym> ホスト名のみが有効となります。
14     </para>
16     <sect3 id="zend.validate.set.hostname.options">
17         <title>Supported options for Zend_Validate_Hostname</title>
19         <para>
20             The following options are supported for <classname>Zend_Validate_Hostname</classname>:
21         </para>
23         <itemizedlist>
24             <listitem>
25                 <para>
26                     <emphasis><property>allow</property></emphasis>: Defines the sort of hostname
27                     which is allowed to be used. See <link
28                         linkend="zend.validate.set.hostname.types">Hostname types</link> for
29                     details.
30                 </para>
31             </listitem>
33             <listitem>
34                 <para>
35                     <emphasis><property>idn</property></emphasis>: Defines if <acronym>IDN</acronym>
36                     domains are allowed or not. This option defaults to <constant>TRUE</constant>.
37                 </para>
38             </listitem>
40             <listitem>
41                 <para>
42                     <emphasis><property>ip</property></emphasis>: Allows to define a own IP
43                     validator. This option defaults to a new instance of
44                     <classname>Zend_Validate_Ip</classname>.
45                 </para>
46             </listitem>
48             <listitem>
49                 <para>
50                     <emphasis><property>tld</property></emphasis>: Defines if
51                     <acronym>TLD</acronym>s are validated. This option defaults to
52                     <constant>TRUE</constant>.
53                 </para>
54             </listitem>
55         </itemizedlist>
56     </sect3>
58     <sect3 id="zend.validate.set.hostname.basic">
59         <title>基本的な使用法</title>
61         <para>
62            基本的な使用法は、以下のようになります。
63         </para>
65         <programlisting language="php"><![CDATA[
66 $validator = new Zend_Validate_Hostname();
67 if ($validator->isValid($hostname)) {
68     // ホスト名は正しい形式のようです
69 } else {
70     // 不正な形式なので、理由を表示します
71     foreach ($validator->getMessages() as $message) {
72         echo "$message\n";
73     }
75 ]]></programlisting>
77         <para>
78             これは、ホスト名 <varname>$hostname</varname> を検証し、失敗した場合は
79             その原因を表す便利なエラーメッセージを
80             <methodname>$validator->getMessages()</methodname> で取得します。
81         </para>
83     </sect3>
85     <sect3 id="zend.validate.set.hostname.types">
86         <title>さまざまな形式のホスト名を検証</title>
88         <para>
89             IP アドレスやローカルホスト名、あるいはその両方を正しいホスト名として認めたいこともあるでしょう。
90             その場合は、<classname>Zend_Validate_Hostname</classname> のインスタンスを作成する際にパラメータを渡します。
91             このパラメータには、どの形式のホスト名を許可するのかを表す整数値を指定しなければなりません。
92             できるだけ、<classname>Zend_Validate_Hostname</classname> の定数を使用するようにしましょう。
93         </para>
95         <para>
96             <classname>Zend_Validate_Hostname</classname> の定数は次のとおりです。<constant>ALLOW_DNS</constant> は <acronym>DNS</acronym> ホスト名のみを許可し、
97             <constant>ALLOW_IP</constant> は IP アドレスを許可します。また <constant>ALLOW_LOCAL</constant>
98             はローカルネットワーク名を許可し、<constant>ALLOW_ALL</constant> はこれら三種類をすべて許可します。
99             IP アドレスだけをチェックするには、以下の例のようにします。
100         </para>
102         <programlisting language="php"><![CDATA[
103 $validator = new Zend_Validate_Hostname(Zend_Validate_Hostname::ALLOW_IP);
104 if ($validator->isValid($hostname)) {
105     // ホスト名は正しい形式のようです
106 } else {
107     // 不正な形式なので、理由を表示します
108     foreach ($validator->getMessages() as $message) {
109         echo "$message\n";
110     }
112 ]]></programlisting>
114         <para>
115             <constant>ALLOW_ALL</constant> を使用してすべての形式を許可するほかに、
116             これらの形式を組み合わせることもできます。
117             たとえば、 <acronym>DNS</acronym> およびローカルホスト名を許可するには、
118             <classname>Zend_Validate_Hostname</classname> のインスタンスを次のように作成します。
119         </para>
121         <programlisting language="php"><![CDATA[
122 $validator = new Zend_Validate_Hostname(Zend_Validate_Hostname::ALLOW_DNS | Zend_Validate_Hostname::ALLOW_IP);]]></programlisting>
124     </sect3>
126     <sect3 id="zend.validate.set.hostname.idn">
127         <title>国際化ドメイン名を検証</title>
129         <para>
130             国別コードトップレベルドメイン (Country Code Top Level Domains: ccTLDs)
131             の一部、たとえば 'de' (ドイツ) などでは、ドメイン名の中に国際化文字の使用をサポートしています。
132             これは、国際化ドメイン名 (International Domain Names: <acronym>IDN</acronym>) といわれるものです。
133             これらのドメインについても、<classname>Zend_Validate_Hostname</classname>
134             の検証プロセスで使用する文字を拡張することで検証できます。
135         </para>
137         <note>
138             <title>IDN ドメイン</title>
140             <para>
141                 これまでに、50以上の ccTLD が <acronym>IDN</acronym> ドメインをサポートします。
142             </para>
143         </note>
145         <para>
146             <acronym>IDN</acronym> ドメインに対するマッチングを行う方法は、通常のホスト名の場合とまったく同じです。
147             というのも、 <acronym>IDN</acronym> のマッチングはデフォルトで有効になっているからです。
148             <acronym>IDN</acronym> の検証を無効にしたい場合は、<classname>Zend_Validate_Hostname</classname>
149             のコンストラクタにパラメータを渡すか、あるいは
150             <methodname>setValidateIdn()</methodname> メソッドを使用します。
151         </para>
153         <para>
154             <acronym>IDN</acronym> の検証を無効にするには、<classname>Zend_Validate_Hostname</classname>
155             のコンストラクタに二番目のパラメータを次のように渡します。
156         </para>
158         <programlisting language="php"><![CDATA[
159 $validator =
160     new Zend_Validate_Hostname(
161         array(
162             'allow' => Zend_Validate_Hostname::ALLOW_DNS,
163             'idn'   => false
164         )
165     );
166 ]]></programlisting>
168         <para>
169             あるいは、 <constant>TRUE</constant> または <constant>FALSE</constant> を
170             <methodname>setValidateIdn()</methodname> に渡すことで、
171             <acronym>IDN</acronym> の検証を有効あるいは無効にすることもできます。
172             現在サポートされていない <acronym>IDN</acronym> ホスト名に対するマッチングを行おうとすると、
173             国際化文字が含まれている場合に検証に失敗します。
174             追加の文字を指定した ccTLD ファイルが <filename>Zend/Validate/Hostname</filename>
175             に存在しない場合は、通常のホスト名の検証を行います。
176         </para>
178         <note>
179             <title>IDN 検証</title>
181             <para>
182                 <acronym>IDN</acronym> の検証は、 <acronym>DNS</acronym> ホスト名の検証を有効にしている場合にのみ行われることに注意しましょう。
183             </para>
184         </note>
185     </sect3>
187     <sect3 id="zend.validate.set.hostname.tld">
188         <title>トップレベルドメインを検証</title>
190         <para>
191             デフォルトでは、ホスト名の検証は既知の <acronym>TLD</acronym> の一覧に基づいて行われます。
192             この機能が不要な場合は、 <acronym>IDN</acronym> サポートを無効にするのと同じ方法で無効にできます。
193             <acronym>TLD</acronym> の検証を無効にするには、<classname>Zend_Validate_Hostname</classname> のコンストラクタに三番目のパラメータを渡します。
194             以下の例では、 <acronym>IDN</acronym> の検証は二番目のパラメータで有効にしています。
195         </para>
197         <programlisting language="php"><![CDATA[
198 $validator =
199     new Zend_Validate_Hostname(
200         array(
201             'allow' => Zend_Validate_Hostname::ALLOW_DNS,
202             'idn'   => true,
203             'tld'   => false
204         )
205     );
206 ]]></programlisting>
208         <para>
209             あるいは、 <constant>TRUE</constant> または <constant>FALSE</constant> を
210             <methodname>setValidateIdn()</methodname> に渡すことで、
211             <acronym>TLD</acronym> の検証を有効あるいは無効にすることもできます。
212         </para>
214         <note>
215             <title>TLD 検証</title>
217             <para>
218                 <acronym>TLD</acronym> の検証は、 <acronym>DNS</acronym> ホスト名の検証を有効にしている場合にのみ行われることに注意しましょう。
219             </para>
220         </note>
221     </sect3>
222 </sect2>
223 <!--
224 vim:se ts=4 sw=4 et: