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

    Скрипт для получения пароля от точки доступа ежедневно, используя предустановленные значения.

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Скрипт для получения пароля от точки доступа ежедневно, используя предустановленные значения., RouterOS
     
    Sn00py
    Guest
    #1
    0
    18.12.2013 05:02:00
    Ищу помощи в завершении этого скрипта, я использовал часть скрипта для расчета дней недели из другого поста. Цель: ежедневно менять пароль пользователя user1 в зависимости от дня недели. Например, понедельник = Password2, пятница = Password6. Скрипт определяет текущий день недели и, после определения дня, изменяет пароль на предустановленную переменную пароля от 1 до 7. Я написал это до сих пор, но не уверен, как это завершить, потому что это не работает. Спасибо.

    :do {
    #################################
    #Определить день недели#
    #################################
    :local sunday “Password1”
    :local monday “Password2”
    :local tuesday “Password3”
    :local wednesday “Password4”
    :local thursday “Password5”
    :local friday “Password6”
    :local saturday “Password7”
    #################################
    #Определить день недели#
    #################################
    :local date [/system clock get date]
    :global result “”
    :local months [:toarray “jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec”]
    :local monthtbl [:toarray “0,3,3,6,1,4,6,2,5,0,3,5”]
    :local daytbl [:toarray “sun,mon,tue,wed,thu,fri,sat”]
    :local month [:pick $date 0 3]
    :local day [:pick $date 4 6]
    :local dayc [:pick $date 5 6]
    :local century [:pick $date 7 9]
    :local year [:pick $date 9 11]
    :local yearc [:pick $date 10 11]
    :if ([:pick $date 4 5] = 0) do={
    :set day ($dayc)}
    :if ([:pick $date 9 10] = 0) do={:set year ($yearc)}
    :local sum 0
    :set sum ($sum + (2 * (3 - ($century - (($century / 4) * 4)))))
    :set sum ($sum + ($year / 4))
    :set sum ($sum + $year + $day)
    :for mindex from=0 to=[:len $months] do={
    :if ([:pick $months $mindex] = $month) do={:set sum ($sum + [:pick $monthtbl $mindex]) }}
    :set sum (($sum - (($sum / 7) * 7)))
    :set result [:pick $daytbl $sum]
    :put ($date . " is on a " . $result)
    ######################################################################
    #Используя IF-условия, проверить совпадение результата и изменить пароль#
    ######################################################################
    :if ($result = “sun”) do { /ip hotspot user set user1 password=$sunday;
    :if ($result = “mon”) do={ /ip hotspot user set user1 password=$monday;
    :if ($result = “tue”) do={ /ip hotspot user set user1 password=$tuesday;
    :if ($result = “wed”) do={ /ip hotspot user set user1 password=$wednesday;
    :if ($result = “thu”) do={ /ip hotspot user set user1 password=$thursday;
    :if ($result = “fri”) do={ /ip hotspot user set user1 password=$friday;
    :if ($result = “sun”) do={ /ip hotspot user set user1 password=$saturday;}}
     
     
     
    skot
    Guest
    #2
    0
    04.01.2014 17:48:00
    Мне кажется, проблема в твоих :if statements. Им всем нужны открывающие { и закрывающие } скобки. И в первом :if statement отсутствует знак равенства (=) после слова "do", как и в остальных. Надеюсь, это поможет!
     
     
     
    efaden
    Guest
    #3
    0
    04.01.2014 17:59:00
    Я верхнюю часть не проверял, но в твоих if-ах были проблемы.

    ##################################################
    #Определить день недели#
    ##################################################
    :local sunday “Password1”
    :local monday “Password2”
    :local tuesday “Password3”
    :local wednesday “Password4”
    :local thursday “Password5”
    :local friday “Password6”
    :local saturday “Password7”
    ##################################################
    #Определить день недели#
    ##################################################
    :local date [/system clock get date]
    :global result “”
    :local months [:toarray “jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec”]
    :local monthtbl [:toarray “0,3,3,6,1,4,6,2,5,0,3,5”]
    :local daytbl [:toarray “sun,mon,tue,wed,thu,fri,sat”]
    :local month [:pick $date 0 3]
    :local day [:pick $date 4 6]
    :local dayc [:pick $date 5 6]
    :local century [:pick $date 7 9]
    :local year [:pick $date 9 11]
    :local yearc [:pick $date 10 11]
    :if ([:pick $date 4 5] = 0) do={
       :set day ($dayc)}
       :if ([:pick $date 9 10] = 0) do={
           :set year ($yearc)}
           :local sum 0
           :set sum ($sum + (2 * (3 - ($century - (($century / 4) * 4)))))
           :set sum ($sum + ($year / 4))
           :set sum ($sum + $year + $day)
           :for mindex from=0 to=[:len $months] do={
               :if ([:pick $months $mindex] = $month) do={
                   :set sum ($sum + [:pick $monthtbl $mindex])}
               }
               :set sum (($sum - (($sum / 7) * 7)))
               :set result [:pick $daytbl $sum]
               :put ($date . " is on a " . $result)

    ######################################################################
    #Используя IF statements, проверить результат на соответствие и изменить пароль#
    ######################################################################
    /ip hotspot user {
       :if ($result = “sun”) do {
           set user1 password=$sunday; }
       :if ($result = “mon”) do={
           set user1 password=$monday; }
       :if ($result = “tue”) do={
           set user1 password=$tuesday; }
       :if ($result = “wed”) do={
           set user1 password=$wednesday; }
       :if ($result = “thu”) do={
           user set user1 password=$thursday; }
       :if ($result = “fri”) do={
           set user1 password=$friday; }
       else={
           set user1 password=$saturday; }
    }
     
     
     
    skot
    Guest
    #4
    0
    04.01.2014 18:58:00
    Только сейчас дошло, что в исходном коде два блока `:if ($result = “sun”)`, которые исправил efaden. Но, кажется, следующий код будет давать сбои. Если сегодня "fri", пароль будет установлен верно. В любой другой день (mon, tues и т.д.) будет использоваться пароль "sat".
    `:if ($result = “fri”) do={ set user1 password=$friday; } else={ set user1 password=$saturday; }`
    Должно быть так:
    `:if ($result = “fri”) do={ set user1 password=$friday; }`
    `:if ($result = “sat”) do={ set user1 password=$saturday; }`
     
     
     
    efaden
    Guest
    #5
    0
    04.01.2014 18:59:00
    Ты прав. Забыл, что в прошивке роутера нет хорошего else if.
    Отправлено с моего SCH-I545 через Tapatalk.
     
     
     
    efaden
    Guest
    #6
    0
    04.01.2014 19:58:00
    ################################################ #Определить день недели# ################################### :local sunday "Password1" :local monday "Password2" :local tuesday "Password3" :local wednesday "Password4" :local thursday "Password5" :local friday "Password6" :local saturday "Password7" ################################### #Определить день недели# ################################### :local date [/system clock get date] :global result “” :local months [:toarray "jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec"] :local monthtbl [:toarray "0,3,3,6,1,4,6,2,5,0,3,5"] :local daytbl [:toarray "sun,mon,tue,wed,thu,fri,sat"] :local month [:pick $date 0 3] :local day [:pick $date 4 6] :local dayc [:pick $date 5 6] :local century [:pick $date 7 9] :local year [:pick $date 9 11] :local yearc [:pick $date 10 11] :if ([:pick $date 4 5] = 0) do={ :set day ($dayc)} :if ([:pick $date 9 10] = 0) do={:set year ($yearc)} :local sum 0 :set sum ($sum + (2 * (3 - ($century - (($century / 4) * 4))))) :set sum ($sum + ($year / 4)) :set sum ($sum + $year + $day) :for mindex from=0 to=[:len $months] do={ :if ([:pick $months $mindex] = $month) do={:set sum ($sum + [:pick $monthtbl $mindex]) }} :set sum (($sum - (($sum / 7) * 7))) :set result [:pick $daytbl $sum] :put ($date . " is on a " . $result) ####################################################################### #Использовать операторы IF для проверки совпадения результата и изменения пароля# ####################################################################### /ip hotspot user { :if ($result = “sun”) do { set user1 password=$sunday; } :if ($result = “mon”) do={ set user1 password=$monday; } :if ($result = “tue”) do={ set user1 password=$tuesday; } :if ($result = “wed”) do={ set user1 password=$wednesday; } :if ($result = “thu”) do={ user set user1 password=$thursday; } :if ($result = “fri”) do={ set user1 password=$friday; } :if ($result = "sat") do={ set user1 password=$saturday; } }
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2025 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры