74
Студента
68%
Завершения
Обновлено: 16 марта, 13:24

Solution.php

Реализуйте функцию-предикат isValidIPv6, которая проверяет IPv6-адреса (адреса шестой версии интернет протокола) на корректность. Функция принимает на вход строку с адресом IPv6 и возвращает true, если адрес корректный, а в противном случае false.

Решение учителя использует библиотеку Funct, чуть ниже есть пример подключения функции из этой библиотеки.

Дополнительные условия:

  • Работа функции не зависит от регистра символов.
  • Ведущие нули в группах цифр необязательны.
  • Самая длинная последовательность групп нулей, например, :0:0:0: может быть заменена на два двоеточия ::. Такую замену можно произвести только один раз.
  • Одна группа нулей :0: не может быть заменена на ::.

Примеры

<?php

isValidIPv6('10:d3:2d06:24:400c:5ee0:be:3d'); // true
isValidIPv6('0B0:0F09:7f05:e2F3:0D:0:e0:7000'); // true
isValidIPv6('000::B36:3C:00F0:7:937'); // true
isValidIPv6('::1'); // true

isValidIPv6('2607:G8B0:4010:801::1004'); // false
isValidIPv6('1001:208:67:4f00:e3::2c6:0'); // false
isValidIPv6('2.001::'); // false
isValidIPv6('9f8:0:69S0:9:9:d9a:672:f90d'); // false
<?php

use function Funct\Collection\flattenAll;

flattenAll(['a', ['b', ['c', ['d']]]]); // ['a', 'b', 'c', 'd']

Подсказки

  • IPv6
  • Для проверки пограничных случаев внимательно изучите список IP-адресов в модуле с тестами.

Для полного доступа к испытанию нужна профессиональная подписка

Профессиональная подписка откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
115
курсов
892
упражнения
2241
час теории
3196
тестов