Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • Changelogs
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Настройка
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    RouterOS
    Удаление IP-адресов из списка на основе другого списка

    Удаление IP-адресов из списка на основе другого списка

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Удаление IP-адресов из списка на основе другого списка, RouterOS
     
    elico
    Guest
    #1
    0
    12.12.2020 21:49:00
    У меня есть набор списков, и я хочу удалить конкретный IP из другого списка адресов. Но что-то не работает... Что я делаю не так?

    :local lists {"test1"; "test2"; "test3";};

    :foreach ip in=[/ip firewall address-list find where list="CLEANUP"] do={
       :local ipAddresss [/ip firewall address-list get $ip address];
       :foreach list in=$lists do={
           /log info "$ipAddresss";
           /log info "$list";
           /ip firewall remove [/ip firewall address-list [find list=$list address=$ipAddress]]
       }
    }

    /log info "Скрипт завершён";
     
     
     
    Jotne
    Guest
    #2
    0
    19.07.2022 04:35:00
    Вот скрипт, которым я пользуюсь. Если IP есть в списке доступа "Whitelist_IP" и при этом найден в списке "Block_list", то удаляем его из "Block_list". После этого отправляем pushbullet-сообщение на мой телефон. (Это может быть любой тип сообщения: лог, email, telegram и т.д.)

    # Удаляем IP из блок-листа, если он в белом списке  
    # Jotne

    # 1.1  получаем IP заранее для ускорения поиска в цикле. 29.05.2022  
    # 1.2  Добавил информацию для Pushbullet 21.06.2022

    /ip firewall address-list  
    :foreach id in=[find where list="Whitelist_IP"] do={
    :local IP [get $id address]
    :local Comment [get $id comment]
    :local IPFound [find where list="Block_list" address=$IP]
    :if ([:len $IPFound] > 0) do={
    remove $IPFound  
    /tool fetch mode=https url="https://api.pushbullet.com/v2/pushes" http-method=post http-data="type=note&body=Unblock $IP $Comment" user="xxxxxxxxxxxxxx"  
    }  
    }
     
     
     
    Siri
    Guest
    #3
    0
    19.07.2022 12:48:00
    Спасибо за вашу доброту. Ваш скрипт отлично работает, и вы ещё дали мне идею записывать удалённые IP-адреса. Я заменил Pushbullet на Google Sheets, чтобы заносить все удалённые IP в таблицу Google. Не по теме этого обсуждения, у вас случайно нет скрипта, который удаляет статические IP из списка адресов, если им больше 30 дней (с учётом времени создания)?
     
     
     
    Jotne
    Guest
    #4
    0
    19.07.2022 20:38:00
    Этот скрипт перемещает статические IP, которые не использовались более 100 дней. Ниже показано, как я рассчитываю количество дней, чтобы понять, как им пользоваться. # Создан Jotne 2021 v1.0  
    # Удаляет все статические DHCP-литы и соответствующие записи DNS, которые старше 100 недель  

    :local counter 0  
    /ip dhcp-server lease  
    :foreach id in=[find where dynamic=no last-seen~"^1[0-9][0-9]"] do={
    :local ip [get $id address]
    :set counter ($counter+1)  
    # удалить DNS-запись с этим IP  
    /ip dns static remove [find where address=$ip]
    # удалить DHCP-запись  
    remove $id  
    }  
    :log info message="script=dhcp_clean Количество удалённых статических DHCP, старше 100 недель: $counter"
     
     
     
    rextended
    Guest
    #5
    0
    19.07.2022 20:49:00
    Нельзя просто так взять и прочитать время создания «jul/19/2022 22:37:42» и сравнить с чем-то. Это строка, и нельзя проверить, прошло ли с неё 30 дней относительно текущей даты. Сделать это крайне сложно (но не невозможно, понятно). Лучше использовать таймаут на элемент, добавленный в address-list, тогда он автоматически удаляется спустя заданное время. Если сделать так, не используется внутреннее хранилище, список не экспортируется в бэкап и не сохраняется после перезагрузки. В противном случае добавьте Unix Epoch, если его нет в статическом address-list, и каждый день или час проверяйте, прошло ли 30 дней (× 24ч × 60мин × 60сек) с указанного числового Epoch относительно текущего.
     
     
     
    Jotne
    Guest
    #6
    0
    20.07.2022 05:47:00
    Об этом говорили многие-многие годы. Я надеялся, что с выходом версии v7.x MikroTik будет использовать стандартный формат времени. Например, время в формате EPOCH. Вот немного помощи, чтобы это реализовать.
     
     
     
    elico
    Guest
    #7
    0
    28.12.2020 15:03:00
    Окей, теперь понял. Попробую позже и посмотрю, как пойдет.
     
     
     
    Siri
    Guest
    #8
    0
    18.07.2022 17:10:00
    Я понимаю, что это старая тема, но @elico, ты не мог бы исправить свой скрипт из первого сообщения? Мне очень нужен такой скрипт, но у меня совершенно нет навыков программирования. Спасибо!
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры