Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад

Как реализовать проверку IP-адреса на принадлежность к списку заблокированных подсетей?

Вопрос проверяет понимание работы подсетей, масок и алгоритмов проверки IP по диапазонам.

Короткий ответ

IP-адрес проверяют, применяя маску подсети и сравнивая сетевую часть адреса с сетевым префиксом. Обычно список подсетей хранится в виде CIDR, например 192.168.1.0/24. При проверке IP переводят в число, применяют маску и сравнивают результат. Такой подход используется в firewall, прокси и системах авторизации.

Длинный ответ

Проверка принадлежности IP подсети основана на работе сетевой маски.

Основной принцип

Определение:
IP принадлежит подсети, если после применения маски его сетевая часть совпадает с сетевой частью подсети.

Формально:

(ip & mask) == network

Пример

Подсеть:

192.168.1.0/24

IP:

192.168.1.42

После применения маски 255.255.255.0 обе сетевые части совпадут.

Как это реализуется в коде (упрощенно, Go)

ip := net.ParseIP("192.168.1.42")
_, subnet, _ := net.ParseCIDR("192.168.1.0/24")

if subnet.Contains(ip) {
    // IP находится в подсети
}

В реальных системах:

  1. список подсетей загружается в память

  2. выполняется проверка по каждой подсети

  3. при совпадении IP блокируется

Как оптимизируют

При большом количестве подсетей:

  1. используют префиксные деревья

  2. сортируют диапазоны

  3. используют специализированные структуры

Где применяется

Такой механизм используется:

  1. firewall

  2. API gateway

  3. антифрод-системы

Вывод

Проверка IP на принадлежность подсети основана на побитовом сравнении с маской и широко используется в сетевой фильтрации.

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    7

Навыки

  • Networks

Ключевые слова

#ip

#subnet

Подпишись на Golang Developer в телеграм

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.