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

    скрипт для смены публичного IP каждый час

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    скрипт для смены публичного IP каждый час, RouterOS
     
    alexanderi
    Guest
    #1
    0
    17.01.2012 21:37:00
    ip firewall nat add action=src-nat chain=srcnat comment="" disabled=no src-address=192.168.11.0/24 to-addresses=8.8.8.135

    Пожалуйста, помогите создать скрипт: чтобы IP-адрес 8.8.8.129 самостоятельно случайным образом менялся из диапазона 8.8.8.129/25 каждый час. Спасибо.
     
     
     
    1qqq
    Guest
    #2
    0
    10.04.2012 18:20:00
    Как применять этот код?

    :do {
     #устанавливаем комментарий правил
     :local com "1"
     #устанавливаем начальный счётчик
     :local start "129"
     #устанавливаем префикс IP-адреса
     :local prefix "8.8.8."
     
     /ip firewall nat
     :foreach a in=[find comment=$com] do={
       :local cuip [get $a to-addresses]
       :local aa [:pick $cuip 6 9]
       :if ($aa!="254") do={
         :local bb ($aa+1)
         set $a to-addresses=($prefix.$bb)
       }
       :if ($aa="254") do={
         :local bb $start
         set $a to-addresses=($prefix.$bb)
       }
     }
    }
     
     
     
    anandreddy
    Guest
    #3
    0
    09.11.2015 13:36:00
    Код работает отлично, когда to-address — 8.8.8., но как только меняем IP-адрес на 192.168.16., код не может изменить yo-address. Пожалуйста, проверьте код. Тестировал на CCR-1009 с версией 6.29. Спасибо.
     
     
     
    PaulsMT
    Guest
    #4
    0
    09.11.2015 14:50:00
    Проблема здесь в команде pick — выбор с 6-го по 9-й символ работает нормально для “8.8.8.x”, но дает сбой с более высокими IP, потому что для IP “192.168.16.x” выбор с 6-го по 9-й символ вернёт другой результат (например, 6.1). Лучшее решение — использовать побитовые операции, чтобы брать только нужную часть IP. Например: { :local IP 8.8.8.8 :put (($IP&0.0.0.255)) } всегда возвращает последние 8 бит IP. Вот рабочий код для всех форматов IP:

    {
     :local com “1”
     :local cuip
     :local start “129”
     :local end
     :local endNum
     :local first
     :local firstNum
     :local nextIP

     :while (true) do={
       :delay 60m;
       :foreach a in=[/ip firewall nat find where comment=$com] do={
         :set $cuip [/ip firewall nat get $a to-addresses];
         ## Получаем последние октеты
         :set $end ($cuip&0.0.0.255);
         :set $first ($cuip&255.255.255.0);
         :set $endNum [:pick $end 6 ([:len $end])];
         :set $firstNum [:pick $first 0 ([:len $first]-2)];
         :if ($endNum>=129 && $endNum<=253) do={ :set $endNum ($endNum +1); }
         :if ($endNum=254) do={ :set $endNum $start; }
         :set $nextIP ($firstNum.“.”.$endNum);
         /ip firewall nat set $a to-addresses=“$nextIP”;
       }
     }
    }

    Этот скрипт будет менять все NAT правила с комментарием “1”, изменяя последний октет to-address в диапазоне 129-253. Если последний октет IP меньше 129, он не изменится.
     
     
     
    boen_robot
    Guest
    #5
    0
    09.11.2015 14:55:00
    $IP&0.0.0.255 Очень круто!!! По моему мнению, это стоило бы задокументировать в Вики, желательно с примером вроде этого. Сейчас побитовые операторы создают впечатление, что работают только с целыми числами, а не между двумя IP-адресами (которые, как я понимаю, на самом деле обрабатываются как целые числа «под капотом», но всё равно — тот факт, что это происходит, неочевиден).
     
     
     
    PaulsMT
    Guest
    #6
    0
    09.11.2015 15:20:00
    Да, это будет работать с обоими типами данных — Integer и IP. Хорошо, спасибо, я добавлю несколько примеров в вики.
     
     
     
    anandreddy
    Guest
    #7
    0
    10.11.2015 13:24:00
    Здравствуйте, Mr.PaulsMT, спасибо за оперативный ответ. Приведённый выше скрипт работает идеально.
     
     
     
    jayceep14
    Guest
    #8
    0
    14.10.2021 09:11:00
    Кто-нибудь может помочь со скриптом, который меняет последний октет IP-адреса от 10 до 254 и после 254 сбрасывает обратно на 1? Хотим использовать это для разных диапазонов IP, а не только для 8.8.8.x.
     
     
     
    Jotne
    Guest
    #9
    0
    14.10.2021 11:17:00
    Зачем кому-то менять публичный IP? Это просто даст диапазон неиспользуемых IPv4-адресов, которых у нас не так много.
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры