Ip == Validates that a value is a valid IP address. By default, this will validate the value as IPv4, but a number of different options exist to validate as IPv6 and many other combinations. ========== =================================================================== Applies to :ref:`property or method ` Options - `groups`_ - `message`_ - `normalizer`_ - `payload`_ - `version`_ Class :class:`Symfony\\Component\\Validator\\Constraints\\Ip` Validator :class:`Symfony\\Component\\Validator\\Constraints\\IpValidator` ========== =================================================================== Basic Usage ----------- .. configuration-block:: .. code-block:: php-annotations // src/Entity/Author.php namespace App\Entity; use Symfony\Component\Validator\Constraints as Assert; class Author { /** * @Assert\Ip */ protected $ipAddress; } .. code-block:: yaml # config/validator/validation.yaml App\Entity\Author: properties: ipAddress: - Ip: ~ .. code-block:: xml .. code-block:: php // src/Entity/Author.php namespace App\Entity; use Symfony\Component\Validator\Constraints as Assert; use Symfony\Component\Validator\Mapping\ClassMetadata; class Author { public static function loadValidatorMetadata(ClassMetadata $metadata) { $metadata->addPropertyConstraint('ipAddress', new Assert\Ip()); } } .. include:: /reference/constraints/_empty-values-are-valid.rst.inc Options ------- .. include:: /reference/constraints/_groups-option.rst.inc message ~~~~~~~ **type**: ``string`` **default**: ``This is not a valid IP address.`` This message is shown if the string is not a valid IP address. You can use the following parameters in this message: =============== ============================================================== Parameter Description =============== ============================================================== ``{{ value }}`` The current (invalid) value =============== ============================================================== .. include:: /reference/constraints/_normalizer-option.rst.inc .. include:: /reference/constraints/_payload-option.rst.inc version ~~~~~~~ **type**: ``string`` **default**: ``4`` This determines exactly *how* the IP address is validated and can take one of a variety of different values: **All ranges** ``4`` Validates for IPv4 addresses ``6`` Validates for IPv6 addresses ``all`` Validates all IP formats **No private ranges** ``4_no_priv`` Validates for IPv4 but without private IP ranges ``6_no_priv`` Validates for IPv6 but without private IP ranges ``all_no_priv`` Validates for all IP formats but without private IP ranges **No reserved ranges** ``4_no_res`` Validates for IPv4 but without reserved IP ranges ``6_no_res`` Validates for IPv6 but without reserved IP ranges ``all_no_res`` Validates for all IP formats but without reserved IP ranges **Only public ranges** ``4_public`` Validates for IPv4 but without private and reserved ranges ``6_public`` Validates for IPv6 but without private and reserved ranges ``all_public`` Validates for all IP formats but without private and reserved ranges