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

    Как заставить MT войти на веб-страницу, а затем активировать ссылки?

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Как заставить MT войти на веб-страницу, а затем активировать ссылки?, RouterOS
     
    qos
    Guest
    #1
    0
    28.01.2006 23:49:00
    Привет. У меня тут особый случай. Чтобы получить доступ к интернету, мне нужно войти на сайт моего интернет-провайдера, затем активировать две ссылки, которые представляют собой полосы пропускания интернета и локальной сети. Мне нужно, чтобы мой MT-роутер на базе RouterOS 2.9 делал это автоматически после истечения срока действия сессии (или по какой-либо другой причине исчезновения соединения) и менял полосу пропускания в определенное время (чтобы соответствовать тарифному плану моего провайдера). Соединение с провайдером осуществляется через ADSL. Я нашел скрипт на Ruby (ruby-lang.org), который делает всё, что мне нужно в моём случае, и, возможно, я смогу найти и PHP-скрипт. Можно ли это сделать на моем MT?

    Скрипт Ruby ниже:

    #!/usr/bin/env ruby
    require ‘net/http’
    require ‘uri’

    =begin
    =end
    module MT
     URL_MTS = “http://192.168.169.66:8080/”
     MT_MDIX_SERVICE = “PrSer4”
     MT_TESTNIGH_SERVICE = “testnigh”
     MT_64_SERVICE = “PrSer1”

     GET /serviceStart/refresh/home?service=testnigh&group=2
     HTTP/1.1
     GET /serviceStart/refresh/home?service=PrSer1&group=2
     HTTP/1.1

     class LiveCookie
       attr_reader :cookies

       def initialize
         @cookies = Hash.new
       end

       def add_raw(raw_cookie)
         raw_cookie =~ /(\w+)=([^|;]*)/
         @cookies [$1] = $2
       end

       def dump
         str = “”
         @cookies.each { |k, v| str += “#{k}=#{v}; " }
         str.chomp(”; ")
       end

       alias << add_raw
     end

     class Service
       class MTSLoginFailure < StandardError; end

       def urlencode(kv)
         str = “”
         kv.each { |k, v| str += “&#{k}=#{v}” }
         URI.encode(str)
       end

       def initialize(username, password)
         @live_cookie = LiveCookie.new
         @username = username
         @password = password
       end

       def show_headers(resp)
         resp.each { |k, v| puts “#{k}: #{v}” }
       end

       def check_location(resp)
         resp.each { |k, v| if (k == ‘location’) then return v end }
         nil
       end

       def store_cookies(resp)
         resp.each { |k, v| if k == ‘set-cookie’ then v.split(/, (?=\w+=)/).each { |cookie| @live_cookie << cookie } end }
       end

       def init
         url = URL_MTS
         while (1) do
           puts “trying: #{url}”
           resp, rd = do_GET(url)
           url = check_location(resp)
           break if url.nil?
         end
       end

       def do_POST(rel_url, form)
         uri = URI.parse(URL_MTS + rel_url)
         http = Net::HTTP.new(uri.host, uri.port)
         req = uri.path
         req += “?” + uri.query if uri.query
         resp, rd = http.post(req, urlencode(form), @live_cookie.cookies)
         show_headers(resp)
       end

       def start_service(service)
         url = URL_MTS + “serviceStart/refresh/home?service=#{service}&group=2”
         do_GET(url)
       end

       def stop_service(service)
         url = “serviceStop/refresh/home?service=#{service}&group=2”
         confirm_stop = { ‘confirmed’ => ‘true’, ‘submitButton’ => ‘OK+’ }
         do_POST(url, confirm_stop)
       end

       def login
         url = “user/refresh/home?confirmed=true&submitButton=OK+”
         login_credentials = { ‘username’ => @username , ‘password’ => @password }
         do_POST(url, login_credentials)
       end

       def logoff
         url = “accountLogoff/home”
         confirm_logoff = { ‘confirmed’ => ‘true’, ‘submitButton’ => ‘OK+’ }
         do_POST(url, confirm_logoff)
       end

       def do_GET(url)
         uri = URI.parse(url)
         http = Net::HTTP.new(uri.host, uri.port)
         req = uri.path
         req += “?” + uri.query if uri.query
         resp, rd = http.get(req, { “Cookie” => @live_cookie.dump })
         show_headers(resp)
         store_cookies(resp)
         [ resp, rd ]
       end
     end
    end

    =begin
    mts = MT::Service.new(‘username_xyz’, ‘password_xyz’)
    mts.init
    mts.logoff;
    sleep 2 # FIXME:
    mts.login
    mts.start_service(MT::MT_MDIX_SERVICE)
    mts.start_service(MT::MT_TESTNIGH_SERVICE)
    =end
    if $0 == FILE
     username = ARGV[0]
     password = ARGV[1]
     mts = MT::Service.new(username, password)
     mts.init
     mts.logoff;
     sleep 2 # FIXME:
     ARGV[2..ARGV.size].each { |service|
       case (service)
       when “TESTNIGH”
         mts.start_service(MT::MT_TESTNIGH_SERVICE)
       when “MDIX”
         mts.start_service(MT::MT_MDIX_SERVICE)
       when “64”
         mts.start_service(MT::MT_64_SERVICE)
       else
         puts “Undefined service #{service}…”
       end
     }
    end
    # so this script is used on a linux machine.
    # As you can see, the service MT_MDIX_SERVICE has to be ALWAYS active (for intranet),
    # and the internet services: MT_TESTNIGH_SERVICE and MT_64_SERVICE are services that control different bandwidths (correcponding to isp billing plan, MT_TESTNIGH_SERVICE is higher bandwidth connection with a low const from midnight till 8:00; then, the MT_64_SERVICE  has to be activated - a low bandwidth and low cost connection).
    # the script can be run on linux by cron:
    # // at 0:05 o’clock
    # ruby srvdi.rb   MDIX TESTNIGH
    # // and at 7:55
    # ruby srvdi.rb   MDIX 64
    # (MDIX is intranet; TEXTNIGH - high bandwidth ; 64 - low bandwidth)
     
     
     
    pedja
    Guest
    #2
    0
    29.01.2006 07:52:00
    Поставь этот или похожий скрипт на некоторые компьютеры в твоей сети и скажи ему часто проверять доступ к этим ссылкам, например, дважды в течение периода ожидания.
     
     
     
    qos
    Guest
    #3
    0
    29.01.2006 13:26:00
    Ну, вот что я не могу сделать. Допустим, у меня нет доступа к ПК, и я, возможно, не смогу делать такие вещи на ПК. У меня есть только одна машина в качестве шлюза. Плюс, машина с этим скриптом может быть неактивна в момент, когда нужно будет все вышеперечисленное сделать.
     
     
     
    normis
    Guest
    #4
    0
    16.08.2006 06:23:00
    Роутер не умеет открывать ссылки за тебя. Нужно спросить у своего провайдера, что делать в такой ситуации.
     
     
     
    qos
    Guest
    #5
    0
    17.08.2006 11:22:00
    Я просто использую отдельный компьютер. В любом случае, Microtik – это круто. Normis, Microtik – это не просто роутер, это Microtik.
     
     
     
    Hellbound
    Guest
    #6
    0
    23.08.2006 18:55:00
    Это просто вход в систему, я не уверен, как именно это сделать в Mikrotik. Я придумал обходной путь в Windows-боксе, конечно, но если у тебя получится сделать это в Mikrotik, это будет лучше всего. Используй инструмент для захвата сетевых пакетов, захвати тот самый пакет, который отправляется с твоего ПК для входа на страницу, и запрос для этой ссылки. Сохрани их в Mikrotik-боксе в текстовом файле (вот где сложность). Открой сессию к назначению и отправь содержимое этого пакета. Я не уверен, как именно можно отправить пакет, но это обычно хакерский трюк для подделки. Если у тебя получится это сделать, пожалуйста, обнови форум и дай нам знать, как ты это сделал.
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры