Пример хелпера-валидатора на PHP для проверки формата ip адреса.
1 2 3 4 5 6 7 8 9 |
/** * Проверить строку на формальное соответствие виду ip адреса * @return bool */ function is_valid_ip($ip) { $ipv4 = '[0-9]{1,3}(\.[0-9]{1,3}){3}'; $ipv6 = '[0-9a-fA-F]{1,4}(\:[0-9a-fA-F]{1,4}){7}'; return preg_match("/^($ipv4|$ipv6)\$/", trim($ip)); } |
Функция проверяет является ли формально строка ip-адресом по протоколам ipv4 или ipv6. Возвращает булево значение.
Возможно применение этого кода как часть более сложных операции проверки (к примеру как формальная проверка адреса электронной почты), так и как частные проверки вводимых пользователем данных.
Ога.
Скармливаешь этой функции IP-адрес 256.256.256.256 — и она кричит true.
Открою секрет, что даже 500.500.500.500 пролезет
А чем плохо filter_var($value, FILTER_VALIDATE_IP, [ ‘flags’ => FILTER_FLAG_IPV4 ])?
Мне кажется гораздо короче и функционала поболее будет.
Всем хорош, мне очень понравился ваш вариант. Рекомендую.