# Тестирование IP WhiteList > Дата: 2026-05-30 > Среда: `https://white.nodejsk8s.dev.nubes.ru` > DEV_MODE: true --- ## Результаты ### Health check | Тест | Запрос | Ожидание | Результат | |---|---|---|---| | Health | `GET /healthz` | 200 OK | ✅ OK | ### Валидатор IPv4/CIDR | № | Ввод | Ожидание | Результат | |---|---|---|---| | 1 | `8.8.8.8` | Добавлено как /32 | ✅ | | 2 | `185.178.210.0/24` | Добавлено | ✅ | | 3 | `1.0.0.0/22` | Добавлено (граница маски) | ✅ | | 4 | `1.0.0.0/21` | Отклонено (маска шире /22) | ✅ «Маска должна быть от /22 до /32» | | 5 | `1.2.3.5/24` | Нормализовано в `1.2.3.0/24` | ✅ «Адрес нормализован» | | 6 | `10.0.0.1` | Отклонено (RFC1918) | ✅ «Диапазон запрещён» | | 7 | `192.168.1.0/24` | Отклонено (RFC1918) | ✅ «Диапазон запрещён» | | 8 | `203.0.113.0/24` | Отклонено (TEST-NET) | ✅ «Диапазон запрещён» | | 9 | `::1` | Отклонено (IPv6) | ✅ «IPv6 не поддерживается» | | 10 | `google.com` | Отклонено (домен) | ✅ «Некорректный формат» | | 11 | `абвгд` | Отклонено (мусор) | ✅ «Некорректный IPv4 адрес» | | 12 | (пусто) | Отклонено | ✅ «Пустое значение» | ### Бизнес-логика | № | Тест | Ожидание | Результат | |---|---|---|---| | 13 | Дубликат `8.8.8.8` | Отклонено | ✅ «Такой адрес уже существует» | | 14 | Пересечение `1.0.0.0/24` внутри `1.0.0.0/22` | Отклонено | ✅ «Пересечение с существующей записью» | | 15 | 15 записей добавлено | 16-я отклонена | ✅ «Лимит исчерпан» | ### Экспорт | № | Тест | Ожидание | Результат | |---|---|---|---| | 16 | `GET /export` | txt, по одному CIDR на строку | ✅ `1.2.3.0/24\n185.178.210.0/24\n8.8.8.8/32\n` | ### Итого - Всего тестов: 16 - Пройдено: 16 - Провалено: 0 --- ## Команды для повторного прогона ```bash BASE="https://white.nodejsk8s.dev.nubes.ru" # Health curl -s "$BASE/healthz" # Валидные curl -s -X POST -d "value=8.8.8.8&comment=Google" "$BASE/add" curl -s -X POST -d "value=185.178.210.0/24&comment=Офис" "$BASE/add" curl -s -X POST -d "value=1.0.0.0/22" "$BASE/add" # Невалидные curl -s -X POST -d "value=1.0.0.0/21" "$BASE/add" # маска curl -s -X POST -d "value=10.0.0.1" "$BASE/add" # серый curl -s -X POST -d "value=192.168.1.0/24" "$BASE/add" # серый curl -s -X POST -d "value=::1" "$BASE/add" # IPv6 curl -s -X POST -d "value=google.com" "$BASE/add" # домен curl -s -X POST -d "value=абвгд" "$BASE/add" # мусор curl -s -X POST -d "value=" "$BASE/add" # пусто # Дубликат curl -s -X POST -d "value=8.8.8.8" "$BASE/add" # Пересечение curl -s -X POST -d "value=1.0.0.0/24" "$BASE/add" # Нормализация curl -s -X POST -d "value=1.2.3.5/24" "$BASE/add" # Экспорт curl -s "$BASE/export" ```