<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect2 id="zend.validate.set.ip">

    <title>Ip</title>

    <para>
        <classname>Zend_Validate_Ip</classname> permet de déterminer si une adresse IP donnée
        est valide. Le composant supporte IPv4 et IPv6.
    </para>

    <sect3 id="zend.validate.set.ip.options">
        <title>Options supportées par Zend_Validate_Ip</title>

        <para>
            Les options suivantes sont supportées par
            <classname>Zend_Validate_Ip</classname>&#160;:
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    <emphasis><property>allowipv4</property></emphasis>&#160;: définit si la
                    validation autorise les adresses IPv4. Cette option vaut
                    <constant>TRUE</constant> par défaut.
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis><property>allowipv6</property></emphasis>&#160;: définit si la
                    validation autorise les adresses IPv6. Cette option vaut
                    <constant>TRUE</constant> par défaut.
                </para>
            </listitem>
        </itemizedlist>
    </sect3>

    <sect3 id="zend.validate.set.ip.basic">
        <title>Utilisation classique</title>

        <para>
            Voici un exemple banal:
        </para>

        <programlisting language="php"><![CDATA[
$validator = new Zend_Validate_Ip();
if ($validator->isValid($ip)) {
    // ip semble valide
} else {
    // ip n'est pas valide
}
]]></programlisting>

        <note>
            <title>adresses IP invalides</title>

            <para>
                <classname>Zend_Validate_Ip</classname> ne valide que des adresses IP.
                '<filename>mydomain.com</filename>' ou
                '<filename>192.168.50.1/index.html</filename>' ne sont donc pas des adresses IP
                valides. Ce sont des noms de domaines ou des <acronym>URL</acronym>s mais pas des
                adresses IP.
            </para>
        </note>

        <note>
            <title>Validation IPv6</title>

            <para>
                <classname>Zend_Validate_Ip</classname> valides les adresses IPv6 au moyen
                d'expressions régulières. La raison est que les fonctions fournies par PHP ne
                suivent pas la <acronym>RFC</acronym>. Beaucoup d'autres classes disponibles
                font de même.
            </para>
        </note>
    </sect3>

    <sect3 id="zend.validate.set.ip.singletype">
        <title>Valider IPv4 ou IPV6 seules</title>

        <para>
            Il peut arriver de ne vouloir valider qu'un seul des deux formats. Par exemple si le
            réseau ne supporte pas IPv6, il serait idiot de demander une telle validation.
        </para>

        <para>
            Pour limiter <classname>Zend_Validate_Ip</classname> sur un seul des deux protocoles,
            utilisez les options <property>allowipv4</property> ou <property>allowipv6</property>
            et mettez les à <constant>FALSE</constant>. Il est possible d'effectuer celà au moyen
            du constructeur ou avec la méthode <methodname>setOptions()</methodname>.
        </para>

        <programlisting language="php"><![CDATA[
$validator = new Zend_Validate_Ip(array('allowipv6' => false);
if ($validator->isValid($ip)) {
    // ip semble être une IPv4 valide
} else {
    // ip n'est pas une adresse IPv4
}
]]></programlisting>

        <note>
            <title>Comportement par défaut</title>

            <para>
                Le comportement par défaut de <classname>Zend_Validate_Ip</classname> est de valider
                les deux standards.
            </para>
        </note>
    </sect3>
</sect2>