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

    python telnetlib не работает на Mikrotik RouterOS

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    python telnetlib не работает на Mikrotik RouterOS, RouterOS
     
    tega2rule
    Guest
    #1
    0
    05.06.2017 08:36:00
    Пожалуйста, кто-нибудь помогите мне, скрипт на Python ниже должен был зайти на мой роутер mikrotik 750 с версией 6.30.2 и отключить интерфейс 4, но ничего не работает. Я пробовал разные варианты, но никак не получается. Из лога роутера видно, что скрипт входит в систему, но не может выполнить изменение конфигурации.

    import getpass
    import telnetlib
    import time

    HOST = "192.168.1.5"
    user = input("Введите ваш удалённый аккаунт: ")
    password = getpass.getpass()
    tn = telnetlib.Telnet(HOST)
    tn.read_until(b"Login: ")
    tn.write(user.encode('ascii') + b"\n")
    time.sleep(1)
    #tn.write(b"\n")
    if password:
       tn.read_until(b"Password: ")
       tn.write(password.encode('ascii') + b"\n")
    time.sleep(1)
    tn.read_until(b"] > ")
    print("[OK] Вход выполнен успешно")
    time.sleep(1)
    tn.write(b" /interface disable 4" + b"\n")
    print(tn.read_all().decode('ascii'))
     
     
     
    idlemind
    Guest
    #2
    0
    26.06.2017 14:33:00
    Тебе стоит хотя бы подумать об SSH и аутентификации на основе ключей или использовать MikroTik API для внесения изменений. TELNET передаёт всё в открытом виде, включая твой пароль. К слову: я не смог установить пакет telnet через PIP на свою машину (Python3), чтобы проверить — не уверен, совместим ли он.
     
     
     
    che
    Guest
    #3
    0
    26.06.2017 17:06:00
    Согласен с idlemind, избегайте telnet как огня. Но если вы всё же используете его только на локальном устройстве, вот что можно попробовать, чтобы починить этот скрипт, предположим, что вход по логину работает, как вы сказали: mtcommand = "/interface disable 4" prompt = ">"

    ...

    tn.read_until(prompt) time.sleep(4) tn.write(mtcommand.encode("UTF-8") + "\r\n")

    Если хотите написать Python-скрипт для продакшена, используйте библиотеку «paramiko» и создавайте ssh-соединение.
     
     
     
    mrz
    Guest
    #4
    0
    27.06.2017 07:27:00
    Ты забыл, что терминал RouterOS по умолчанию выводит красивые строки с цветными кодами. Либо нужно это учитывать, либо отключить цвета и/или включить режим «dumb». Смотри руководство по опциям входа в консоль https://wiki.mikrotik.com/wiki/Manual:Console_login_process#Console_login_options
     
     
     
    savage
    Guest
    #5
    0
    27.06.2017 18:04:00
    В этом нет ничего приятного. Это огромная головная боль. Даже с +cti это всё равно не «тупой» терминал.
     
     
     
    mrz
    Guest
    #6
    0
    28.06.2017 12:28:00
    Мне жаль, что вам кажется, что это выглядит некрасиво, но, к сожалению, мы не можем подбирать цвета на вкус каждого. Мы всегда открыты к предложениям, так что если у вас есть идеи, не стесняйтесь предложить другую цветовую гамму.
     
     
     
    savage
    Guest
    #7
    0
    28.06.2017 12:34:00
    Извини, что тебе кажется, будто я жалуюсь на «цвета». Просто убери ANSI полностью из терминала. Как это делают любые нормальные сетевые вендоры.
     
     
     
    idlemind
    Guest
    #8
    0
    29.06.2017 03:56:00
    Не хочу уводить тему в сторону, но мне действительно очень нравится раскраска ANSI. Она кажется гораздо более читаемой, чем у «других» поставщиков.
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2025 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры