Эйч
Эйч
  • Все менторы
Задачи/Go-разработчик/Фаервол с проверкой IP

Фаервол с проверкой IP

Условие задачи

Нужно реализовать программу, моделирующую работу фаервола. Она должна принимать список правил, каждое из которых содержит CIDR-блок и действие ("ALLOW" или "DENY"). Основная функция должна определять, разрешён ли конкретный IP-адрес на основе этих правил, возвращая true для разрешённых адресов и false для запрещённых. Также важно корректно обрабатывать недопустимые CIDR-блоки и действия

gopackage main

import (
  "fmt"
)

// Функция проверки разрешения IP-адреса
func IsAllowed(rules [][2]string, ip string) bool {
  // **Вставьте код проверки IP-адреса по правилам**
  return false
}

func main() {
    // **Пример входных данных:**
    // **Пример 1:**
    rules1 := [][2]string{
        {"192.168.1.0/24", "ALLOW"},
        {"10.0.0.0/16", "DENY"},
        {"8.8.8.8", "ALLOW"},
    }
    ip1 := "192.168.1.10" // ответ true

    // **Пример 2:**
    rules2 := [][2]string{
        {"192.168.1.0/24", "ALLOW"},
        {"10.0.0.0/16", "DENY"},
        {"8.8.8.8", "ALLOW"},
    }
    ip2 := "10.0.0.10" // ответ false

    // **Пример 3:**
    rules3 := [][2]string{
        {"192.168.1.0/24", "ALLOW"},
        {"10.0.0.0/16", "DENY"},
        {"8.8.8.8", "ALLOW"},
    }
    ip3 := "192.168.2.10" // ответ false

    processExample(rules1, ip1)
    processExample(rules2, ip2)
    processExample(rules3, ip3)
}

func processExample(rules [][2]string, ip string) {
    if IsAllowed(rules, ip) {
        fmt.Println("true")
    } else {
        fmt.Println("false")
    }
}

Профессия

Go-разработчик

Сопроводим до оффера

Умножим шансы на каждом этапе поиска и поможем получить выгодный оффер

Узнать больше

Сервис развития карьеры

Контактыteam@h.careers@hcareers
TelegramVKYouTubeLinkedIn
Профессии
Компания
С чем помогаемОтзывыВопросы и ответыСертификатыВебинарыСтать ментором

Платформа принадлежит ООО "Эйч Карьера"
ИНН 9710095807 ОГРН 1227700077340
Адрес: 127006, город Москва, Старопименовский пер, д. 18 стр. 2, помещ./ком./этаж I/19/2

Copyright © 2020-2025 Сервис развития карьеры Эйч. Все права защищены.

Политика конфиденциальностиПользовательское соглашениеОферта