| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 15103 -->
- <!-- Reviewed: no -->
- <sect2 id="zend.validate.set.hostname">
- <title>Hostname (Nombre de Host)</title>
- <para>
- <classname>Zend_Validate_Hostname</classname> le permite validar un nombre de host
- contra una serie de especificaciones conocidas.
- Es posible comprobar por tres diferentes tipos de nombres:
- el DNS Hostname (domain.com por ejemplo), dirección IP (es decir 1.2.3.4),
- y nombres de host locales (localhost, por ejemplo).
- Por defecto sólo se comprobarán nombres de host DNS.
- </para>
- <para>
- <emphasis>Uso básico</emphasis>
- </para>
- <para>
- El siguiente es un ejemplo de uso basico:
- <programlisting role="php"><![CDATA[
- $validator = new Zend_Validate_Hostname();
- if ($validator->isValid($hostname)) {
- // hostname parece ser válido
- } else {
- // hostname es inválido; muestre las razones
- foreach ($validator->getMessages() as $message) {
- echo "$message\n";
- }
- }
- ]]></programlisting>
- Comprobará el nombre de host <code>$hostname</code> y si fracasa
- alimentará a <code>$validator->getMessages()</code> con mensajes de error.
- </para>
- <para>
- <emphasis>Validar diferentes tipos de nombres de host</emphasis>
- </para>
- <para>
- También se puede encontrar coincidencias de direcciones IP,
- nombres de host locales, o una combinación de todos los tipos permitidos.
- Esto puede hacerse pasando un parámetro a <classname>Zend_Validate_Hostname</classname>
- cuando lo instancia.
- El parámetro debe ser un entero que determina qué tipos de nombres de
- host están permitidos.
- Se recomienda el uso de las constantes de <classname>Zend_Validate_Hostname</classname>
- para hacerlo.
- </para>
- <para>
- Las constantes de <classname>Zend_Validate_Hostname</classname> son:
- <code>ALLOW_DNS</code> para permitir sólo nombres de host DNS,
- <code>ALLOW_IP</code> para permitir direcciones IP,
- <code>ALLOW_LOCAL</code> para permitir nombres de host de la red local, y
- <code>ALLOW_ALL</code> para permitir todos estos tres tipos.
- Para comprobar que direcciones IP puede utilizar, vea el siguiente ejemplo:
- <programlisting role="php"><![CDATA[
- $validator = new Zend_Validate_Hostname(Zend_Validate_Hostname::ALLOW_IP);
- if ($validator->isValid($hostname)) {
- // hostname parece ser válido
- } else {
- // hostname es inválido; muestre las razones
- foreach ($validator->getMessages() as $message) {
- echo "$message\n";
- }
- }
- ]]></programlisting>
- </para>
- <para>
- Usando <code>ALLOW_ALL</code> para aceptar todos los tipos de nombres de
- host, también puede combinar estos tipos para realizar combinaciones.
- Por ejemplo, para aceptar nombres de host DNS y locales, instancie el
- objeto <classname>Zend_Validate_Hostname</classname> como:
- <programlisting role="php"><![CDATA[
- $validator = new Zend_Validate_Hostname(Zend_Validate_Hostname::ALLOW_DNS |
- Zend_Validate_Hostname::ALLOW_IP);
- ]]></programlisting>
- </para>
- <para>
- <emphasis>Validación de Nombres de Dominio Internacionales</emphasis>
- </para>
- <para>
- Algunos (ccTLD), es decir países "Country Code Top Level Domains" , como 'de' (Alemania),
- aceptan caracteres internacionales como nombres de dominio.
- Estos son conocidos como Nombres de Dominio Internacionales
- (IDN, por sus siglas en inglés).
- Se puede buscar una coincidencia de estos dominios con Zend_Validate_Hostname,
- a través de caracteres extendidos que se utilizan en el proceso de validación.
- </para>
- <para>
- En la actualidad la lista de las ccTLDs incluyen a:
- <itemizedlist>
- <listitem>
- <para>at (Austria)</para>
- </listitem>
- <listitem>
- <para>ch (Suiza)</para>
- </listitem>
- <listitem>
- <para>li (Liechtenstein)</para>
- </listitem>
- <listitem>
- <para>de (Alemania)</para>
- </listitem>
- <listitem>
- <para>fi (Finlandia)</para>
- </listitem>
- <listitem>
- <para>hu (Hungría)</para>
- </listitem>
- <listitem>
- <para>no (Noruega)</para>
- </listitem>
- <listitem>
- <para>se (Suecia)</para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- Cotejar dominios IDN es tan simple como usar el validador estándar
- Hostname, ya que este viene habilitado por defecto.
- Si desea desactivar la validación IDN, se puede hacer ya sea pasando un
- parámetro al constructor Zend_Validate_Hostname o a través del método
- <code>$validator->setValidateIdn()</code>.
- </para>
- <para>
- Puede deshabilitar la validación IDN, pasando un segundo parámetro al
- constructor Zend_Validate_Hostname de la siguiente manera.
- <programlisting role="php"><![CDATA[
- $validator =
- new Zend_Validate_Hostname(Zend_Validate_Hostname::ALLOW_DNS, false);
- ]]></programlisting>
- Alternativamente puede pasar TRUE o FALSE a <code>$validator->setValidateIdn()</code>
- para activar o desactivar la validación IDN.
- Si está tratando de cotejar un nombre de host IDN que actualmente no
- está soportado, es probable que falle la validación si tiene caracteres
- internacionales en el nombre de host.
- Cuando un archivo ccTLD no existe en Zend/Validate/Hostname, especificando
- los caracteres adicionales se puede realizar una validación normal.
- </para>
- <para>
- Tenga en cuenta que una validación IDN solo se realizará si tiene habilidada
- la validación para nombres de host DNS.
- </para>
- <para>
- <emphasis>Validar dominios de nivel superior</emphasis>
- </para>
- <para>
- Por defecto un nombre de host se cotejará con una lista de TLDs conocidos.
- Si esta funcionalidad no es necesaria, puede ser desactivada en la misma
- forma que deshabilita el soporte IDN.
- Puede deshabilitar la validación TLD pasando un tercer parámetro al
- constructor Zend_Validate_Hostname.
- En el siguiente ejemplo estamos dando respaldo a la validación IDN a través
- del segundo parámetro.
- <programlisting role="php"><![CDATA[
- $validator =
- new Zend_Validate_Hostname(Zend_Validate_Hostname::ALLOW_DNS,
- true,
- false);
- ]]></programlisting>
- Alternativamente puede pasar TRUE o FALSE a <code>$validator->setValidateTld()</code>
- para activar o desactivar la validación TLD.
- </para>
- <para>
- Tenga en cuenta que una validación de TLDs solo se realizará si tiene habilidada
- la validación para nombres de host DNS.
- </para>
- </sect2>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|