Валидный IPv4
Прогресс комнаты
0 / 4
Задание 1Введение
Цель: Строго валидировать IP-адреса.
Напишите is_valid_ipv4(s): четыре числа 0–255 через точку, без ведущих нулей (кроме самого 0), без пробелов и знаков.
Задание 2Теория и инструменты
Разные библиотеки понимают 010.0.0.1 по-разному: как десятичное 10 или восьмеричное 8. Это используют для обхода SSRF-фильтров.
Строгий формат: ровно 4 десятичных числа без ведущих нулей.
Инструменты
- Python 3 или Node.js
- Встроенные тесты в редакторе
Больше теории — в разделе «Обучение: Защита (код)».
Задание 3Практика: напишите код
Примеры
Пример 1
is_valid_ipv4("192.168.0.1")
→ trueПример 2
is_valid_ipv4("255.255.255.255")
→ trueЕщё 10 скрытых тестов.
Пошаговый план — открывайте по одному шагу
- 1Разбейте строку по точке, частей должно быть 4.
- 2Каждая часть —
0или число без ведущего нуля. - 3Значение не больше 255.
Подсказки — каждая до решения стоит −10 очков
Задание 4Как защититься
Используйте строгие парсеры (ipaddress в Python) и проверяйте адрес после разрешения DNS.
Разборы участников
Разборы открываются после того, как вы решите комнату, — чтобы не спойлерить ответ.