[ZF-10089] Zend_Log
[zend.git] / documentation / manual / es / module_specs / Zend_Validate-Hostname.xml
blobf4d4ce2e79dcab5158f2b24d4085b60e1d7aec91
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- EN-Revision: 20115 -->
3     <!-- Reviewed: no -->
4 <sect2 id="zend.validate.set.hostname">
6     <title>Hostname (Nombre de Host)</title>
8     <para>
9         <classname>Zend_Validate_Hostname</classname> le permite validar un
10         nombre de host contra una serie de especificaciones conocidas. Es
11         posible comprobar por tres diferentes tipos de nombres: el DNS Hostname
12         (domain.com por ejemplo), dirección IP (es decir 1.2.3.4), y nombres de
13         host locales (localhost, por ejemplo). Por defecto sólo se comprobarán
14         nombres de host DNS. </para>
16     <para>
17         <emphasis>Uso básico</emphasis>
18     </para>
20     <para> El siguiente es un ejemplo de uso básico: <programlisting language="php"><![CDATA[
21 $validator = new Zend_Validate_Hostname();
22 if ($validator->isValid($hostname)) {
23     // hostname parece ser válido
24 } else {
25     // hostname es inválido; muestre las razones
26     foreach ($validator->getMessages() as $message) {
27         echo "$message\n";
28     }
30 ]]></programlisting> Comprobará el nombre de host <varname>$hostname</varname> y
31         si fracasa alimentará a <methodname>getMessages()</methodname> con
32         mensajes de error. </para>
34     <para>
35         <emphasis>Validar diferentes tipos de nombres de host</emphasis>
36     </para>
38     <para> También se puede encontrar coincidencias de direcciones IP, nombres
39         de host locales, o una combinación de todos los tipos permitidos. Esto
40         puede hacerse pasando un parámetro a
41             <classname>Zend_Validate_Hostname</classname> cuando lo instancia.
42         El parámetro debe ser un entero que determina qué tipos de nombres de
43         host están permitidos. Se recomienda el uso de las constantes de
44             <classname>Zend_Validate_Hostname</classname> para hacerlo. </para>
46     <para> Las constantes de <classname>Zend_Validate_Hostname</classname> son:
47             <constant>ALLOW_DNS</constant> para permitir sólo nombres de host
48         DNS, <constant>ALLOW_IP</constant> para permitir direcciones IP,
49             <constant>ALLOW_LOCAL</constant> para permitir nombres de host de la
50         red local, y <constant>ALLOW_ALL</constant> para permitir todos estos
51         tres tipos. Para comprobar que direcciones IP puede utilizar, vea el
52         siguiente ejemplo: <programlisting language="php"><![CDATA[
53 $validator = new Zend_Validate_Hostname(Zend_Validate_Hostname::ALLOW_IP);
54 if ($validator->isValid($hostname)) {
55     // hostname parece ser válido
56 } else {
57     // hostname es inválido; muestre las razones
58     foreach ($validator->getMessages() as $message) {
59         echo "$message\n";
60     }
62 ]]></programlisting>
63     </para>
65     <para> Usando <constant>ALLOW_ALL</constant> para aceptar todos los tipos de
66         nombres de host, también puede combinar estos tipos para realizar
67         combinaciones. Por ejemplo, para aceptar nombres de host DNS y locales,
68         instancie el objeto <classname>Zend_Validate_Hostname</classname> como: <programlisting language="php"><![CDATA[
69 $validator = new Zend_Validate_Hostname(Zend_Validate_Hostname::ALLOW_DNS |
70                                         Zend_Validate_Hostname::ALLOW_IP);
71 ]]></programlisting>
72     </para>
74     <para>
75         <emphasis>Validación de Nombres de Dominio Internacionales</emphasis>
76     </para>
78     <para> Algunos (ccTLD), es decir países "Country Code Top Level Domains" ,
79         como 'de' (Alemania), aceptan caracteres internacionales como nombres de
80         dominio. Estos son conocidos como Nombres de Dominio Internacionales
81         (IDN, por sus siglas en inglés). Se puede buscar una coincidencia de
82         estos dominios con <classname>Zend_Validate_Hostname</classname> , a
83         través de caracteres extendidos que se utilizan en el proceso de
84         validación. </para>
86     <para> Until now more than 50 ccTLDs support IDN domains. </para>
88     <para> Cotejar dominios IDN es tan simple como usar el validador estándar
89         Hostname, ya que este viene habilitado por defecto. Si desea desactivar
90         la validación IDN, se puede hacer ya sea pasando un parámetro al
91         constructor <classname>Zend_Validate_Hostname</classname> o a través del
92         método <methodname>setValidateIdn()</methodname> . </para>
94     <para>Puede deshabilitar la validación IDN, pasando un segundo parámetro al
95         constructor Zend_Validate_Hostname de la siguiente manera. </para>
97     <programlisting language="php"><![CDATA[
98 $validator =
99     new Zend_Validate_Hostname(
100         array(
101             'allow' => Zend_Validate_Hostname::ALLOW_DNS,
102             'idn'   => false
103         )
104     );
105 ]]></programlisting>
107     <para> Alternativamente puede pasar <constant>TRUE</constant> o
108             <constant>FALSE</constant> a
109             <methodname>setValidateIdn()</methodname> para activar o desactivar
110         la validación IDN. Si está tratando de cotejar un nombre de host IDN que
111         actualmente no está soportado, es probable que falle la validación si
112         tiene caracteres internacionales en el nombre de host. Cuando un archivo
113         ccTLD no existe en Zend/Validate/Hostname, especificando los caracteres
114         adicionales se puede realizar una validación normal. </para>
116     <para>Tenga en cuenta que una validación IDN solo se realizará si tiene
117         habilidada la validación para nombres de host DNS.</para>
119     <para>
120         <emphasis>Validacuión de dominios de nivel superior</emphasis>
121     </para>
123     <para>Por defecto un nombre de host se cotejará con una lista de TLDs
124         conocidos. Si esta funcionalidad no es necesaria, puede ser desactivada
125         en la misma forma que deshabilita el soporte IDN. Puede deshabilitar la
126         validación TLD pasando un tercer parámetro al constructor
127         Zend_Validate_Hostname. En el siguiente ejemplo estamos dando respaldo a
128         la validación IDN a través del segundo parámetro. </para>
129     <programlisting language="php"><![CDATA[
130 $validator =
131     new Zend_Validate_Hostname(
132         array(
133             'allow' => Zend_Validate_Hostname::ALLOW_DNS,
134             'idn'   => true,
135             'tld'   => false
136         )
137     );
138 ]]></programlisting>
140     <para> Alternativamente puede pasar <constant>TRUE</constant> o
141             <constant>FALSE</constant> a
142             <methodname>setValidateTld()</methodname> para activar o desactivar
143         la validación TLD. </para>
145     <para>Tenga en cuenta que una validación de TLDs solo se realizará si tiene
146         habilidada la validación para nombres de host DNS.</para>
148 </sect2>