В этой задаче вам предстоит ответить на вопрос, является данная на вход строка корректным IPv4 или IPv6-адресом. Решите задачу без использования регулярных выражений.
Валидный IPv4-адрес имеет следующий формат: s1.s2.s3.s4, где si— целое число от 0 до 255. Числа si не должны иметь лидирующих нулей.
Валидный IPv6-адрес имеет следующий формат: s1:s2:s3:s4:s5:s6:s7:s8, где si - представление числа в 16-ричной системе, состоящее не более чем из четырёх символов. В записи каждого числа могут присутствовать лидирующие нули. Разрешено использовать символы 0-9, a-f, A-F. si не может быть пустой последовательностью символов.
Замечание: в реальности в IPv6-адресе допустима замена группы нулевых полей на ::, однако для простоты в данной задаче такое правило учитывать не нужно.
На вход подается строка, состоящая из латинских букв, цифр и символов «.» и «:». Длина строки не превосходит 100 символов.
Выведите «IPv4», если строка является корректным IPv4-адресом.
Выведите «IPv6», если строка является корректным IPv6-адресом.
Выведите «Error», если строка не является корректной записью IP-адреса.
127.0.0.1 | IPv4 |
256.0.0.0 | Error |
2001:0db8:85a3:00:0:8a2e:0370:7334 | IPv6 |
2001:0db8:85a3:0:030:8a2e:0370:7334 | IPv6 |