Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • 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
    Регулярное выражение, чтобы НЕ найти что-то...

    Регулярное выражение, чтобы НЕ найти что-то...

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Регулярное выражение, чтобы НЕ найти что-то..., RouterOS
     
    Wazza
    Guest
    #1
    0
    02.12.2012 12:07:00
    Всем привет! Пишу скрипты и хочу использовать регулярные выражения для идентификации (или неидентификации) некоторых моих правил/наборов/чего-то там. Используя набор вроде этого (это как раз netwatch, но это может быть что угодно):- [admin@RTR] /tool netwatch> print
    Flags: X - disabled
    #   HOST                 TIMEOUT              INTERVAL             STATUS
    0   203.255.255.110        1s                   10s                  up
    1   ;;; Monitor through to fw.i3
        116.255.255.2         1s                   1m                   up
    2   ;;; Monitor to BR AP.BR status
        203.255.255.66         1s                   5s                   down
    3   ;;; Something random
        203.255.255.115        1s                   10s                  up

    Я могу делать такие штуки, как:- [admin@RTR] /tool netwatch> print where comment~"Monitor"
    Flags: X - disabled
    #   HOST                 TIMEOUT              INTERVAL             STATUS
    1   ;;; Monitor through to fw.i3
        116.255.255.2         1s                   1m                   up
    2   ;;; Monitor to BR AP.BR status
        203.255.255.66         1s                   5s                   down

    Но мне бы еще хотелось найти обратное. Вещи, у которых НЕТ "Monitor" в комментарии:- print where comment!~"Monitor"
    print where !comment~"Monitor"

    Оба варианта кажутся синтаксически верными, но ни один из них не возвращает никаких значений. Получить работу на CLI — это первый шаг, а потом я смогу добавить это в свой скрипт. Буду рад любой помощи! Спасибо, Wazza
     
     
     
    mysz0n
    Guest
    #2
    0
    08.11.2013 11:27:00
    Ты разобрался? У меня та же проблема возникла прямо сейчас. Все отлично / IP-адрес показывает, где адрес~"192.168.1.", но как сделать наоборот?
     
     
     
    janisk
    Guest
    #3
    0
    08.11.2013 12:01:00
    [admin@MikroTik] /interface wireless> /ip ad print where (address~"1" = false)
    Флаги: X - отключен, I - недействителен, D - динамический
    #   ADDRESS            NETWORK         INTERFACE                                                                                
    2   4.4.4.4/32         5.5.5.5         wlan1                                                                                    
    4 I 7.7.7.7/32         6.6.6.6         wlan2 для этих 2 output – то же самое: /interface wireless> /ip ad print where address~"1" [admin@MikroTik] /interface wireless> /ip ad print where (address~"1" = true)
    Флаги: X - отключен, I - недействителен, D - динамический
    #   ADDRESS            NETWORK         INTERFACE                                                                                
    0   ;;; default configuration
        192.168.88.33/24   192.168.88.0    ether1                                                                                  
    1   192.168.113.2/24      10.5.113.0      ether1                                                                                  
    3 D 192.168.113.246/24    10.5.113.0      ether1
     
     
     
    mysz0n
    Guest
    #4
    0
    08.11.2013 12:11:00
    Спасибо за очень быстрый ответ. Работает как положено! Спасибо ещё раз!
     
     
     
    mysz0n
    Guest
    #5
    0
    08.11.2013 14:20:00
    Могу ли я как-то решить это с помощью условия? Потому что этот код, кажется, совершенно не работает:

    ```
    if ($lastip ~"168."=true) do={
    :log error "test test"
    }
    ```
     
     
     
    skot
    Guest
    #6
    0
    08.11.2013 17:52:00
    Работает у меня, протестировано в 5.26 и 6.4. Как ты это тестируешь? Я заключаю весь скрипт в фигурные скобки и запускаю в терминале (чтобы локальные переменные были доступны): { :local lastip "123.168.123.123" :if ($lastip~“168.” = true) do={ :put “YES” } else={ :put “NO” } } А потом, когда заканчиваю, удаляю их из финального скрипта, который не будет работать в терминале, но отлично работает в System > Script или System > Scheduler: :local lastip "123.168.123.123" :if ($lastip~“168.” = true) do={ :put “YES” } else={ :put “NO” }
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры