Эмулировать консольный запрос на вход в маршрутизатор

335
Flu

Я пытаюсь войти в настройки моего маршрутизатора из командной строки на моем компьютере с Ubuntu. Это не одна из тех дорогих моделей маршрутизаторов, которая имеет специализированный консольный порт, а скорее «нормальная» для семейства и тому подобное, ASUS. Я не думаю, что модель актуальна. То, что я хочу сделать, в основном эквивалентно открытию браузера и вводу адреса шлюза по умолчанию и вводу имени пользователя и пароля. Есть ли способ эмулировать такой процесс с .. скажем, Python или Curl?

Что я пробовал

  • Я попытался зайти в chrome в инструментах разработчика и на вкладке сети, чтобы посмотреть, какой запрос делает мой браузер и какой ответ я получаю от маршрутизатора, но это не имеет смысла. Я никогда не видел ничего подобного, и это только смущало меня больше.
  • Я пытался отправлять запросы get и post с моим именем пользователя и паролем, используя curl, библиотеку запросов из python и XMLHttpRequest в JavaScript. Не повезло, только вернулся сообщение с 401, несанкционированный или что-то о неправильно сформированном запросе.

Чего я пытаюсь достичь

Короче говоря, я надеялся, что смогу каким-то образом автоматизировать процесс и сделать определенные автоматизации. Я запускал скрипт на своем компьютере с Ubuntu, и он отправлял имя пользователя и пароль, возвращал содержимое всего, что отправляет маршрутизатор (я полагаю, html, CSS и JavaScript для управления интерфейсом) и что-то делал с этим. Что было бы еще лучше, так это на самом деле добраться до командной строки маршрутизатора и изменить настройки оттуда (я знаю, что, вероятно, этого трудно добиться, но человек может попробовать).

0
Обратите внимание на дополнение ** Selenium IDE **. Я использовал его с Firefox в Ubuntu, но он вполне может быть доступен в других браузерах и платформах. Другой способ, который я использовал для автоматизации функций маршрутизатора, - использовать `telnet` со скриптом. Оба метода работали для меня на моем маршрутизаторе TP-Link. AFH 5 лет назад 0
Поместите [openwrt] (https://openwrt.org/) или [ddwrt] (https://dd-wrt.com/) на него, чтобы вы могли легко получить доступ к маршрутизатору через ssh. Это было бы намного лучшим решением. Ipor Sircer 5 лет назад 1
@Ipor Sircer изменение ОС роутера не вариант Flu 5 лет назад 0

1 ответ на вопрос

-1
tjanson

Вы определенно должны быть в состоянии достичь того, что вы хотите, так или иначе. Вопрос в том, какой уровень абстракции вы хотите использовать.

Вы пробовали низкоуровневый способ: пытаться эмулировать запросы с помощью curl или скрипта Python. Я думаю, что это хороший подход и должен быть выполнимым. (Например, сравните этот супер простой вызов curl на маршрутизаторе TP-Link . Базовая аутентификация и реферер - это все, что здесь нужно - эй, возможно, реферер - это все, что вам тоже нужно?) Но без просмотра веб-интерфейса я не могу предложить конкретный совет.

Тогда есть высокоуровневый способ: используйте безголовый браузер и имитируйте точные пользовательские данные на странице. CasperJS может подойти; их документы должны дать вам хорошую отправную точку. Конечно, это, возможно, довольно жестокий способ, но он справится с работой.

Я не согласен с мнением, потому что этот вопрос является широким и дает некоторые общие предположения о том, как этого добиться. Таким образом, любой ответ, размещенный здесь, честно говоря, никогда не будет ответом, и плохой вопрос (к сожалению) поощряется размещением такого ответа. Комментарий от Ipor Sircer является на 100% правильным: получение прошивки с открытым исходным кодом, которая обеспечивает SSH-доступ к устройству, - действительно лучший путь. JakeGould 5 лет назад 0
Я не согласен. Часть вопроса (желая автоматизировать пользовательский ввод) довольно специфична, и здесь дан ответ. И хотя я сам являюсь поклонником OpenWRT, ответить на вопрос автоматизации с помощью «установки другой прошивки», не зная дополнительных требований, тоже большой скачок. tjanson 5 лет назад 0

Похожие вопросы