Как стать автором
Обновить

Комментарии 20

TP-Link TL-WR841N, у которого, к сожалению, нет интерфейса управления через командную строку (telnet, SSH).

Это не совсем так, ведь есть OpenWRT, а там полноценный ssh
Да, стоило упомянуть, что речь идет о штатной прошивке. OpenWRT решает проблему с командной строкой. Но не на все устройства есть OpenWRT. В данном случае речь идет об общем подходе к управлению через WEB.
В последних версиях устройств (v12 или v13), на заводской прошивке, есть какой-то отклик на SSH порту. Был весьма удивлён этим событием, однако, устройство было у меня не долго (просили просто настроить WiFI). Было-бы интересно узнать, появился там SSH нормальный или нет.
Там версия прошивки соответствует версии железа.


Последняя версия на оф сайте действительно V13, но у меня на руках только железо V10. Отклик по SSH на нем есть, но при попытке ввода пароля


Официально ни одна из версий SSH не поддерживает.
А по telnet отвечает?
На telnet вообще не отвечает.
Поставить OpenWRT и не парится? Или это для слабаков?
Так было бы проще, но не интересно
Вы правы относительно наличия OpenWRT, но, на самом деле, TP-Link — это лишь частный пример. Быть может, у вашего холодильника, чайника или пылесоса есть WEB-интерфейс, а значит им можно попробовать управлять с помощью Python requests и автоматизировать, автоматизировать и еще раз автоматизировать…
а где живет ваш бот? сервер дома?
Да, он живет на одноплатной машине Odroid C2 с ОС Ubuntu и включен в LAN маршрутизатора, а управляю я им с помощью телеграма.
Кстати, приведенные в статье Python запросы будут работать и через интернет в случае наличия открытого доступа к маршрутизатору по белому IP. С точки зрения HTTP запросов неважно работать через WAN или через LAN.
ну это тогда ничем не лучше открытого доступа к роутеру. телеграмм тем и лучше, что может работать в режиме поллинга и не светиться наружу
Конечно, когда бот находится строго во внутренней сети, управляет маршутизатором из внутренней сети и ничем не светит наружу — это значительно безопаснее.

Про возможность работы Python requests через интернет — это я на всякий случай)
Спасибо, возьму на вооружение. Пользуюсь автоматической перезагрузкой роутера еженощно в 1:05 — чтобы срабатывал хайвей на билайне, только bash скриптами, с отчетами в телеграмм. Вопрос на вскидку а если вместо 'Cookie': auth_token} использовать обертку with requests.Session() as s: s.get(url) — тут же идет сохранение сессии или я ошибаюсь?
А что вы подразумеваете под «сохранением сессии»?
Как-то сложновато использовать wireshark, просто чтобы посмотреть запросы браузера. Можно было в самом браузере открыть devtools и скопировать нужные данные.
Наверное, я слишком привязан к Wireshark еще со времен Ethereal…
Да, конечно, вы правы. Devtools браузера проще. Спасибо!
Не в данном случае, но в других — приходится пользоватся сниферами т.к. хромниумы не видят(иногда) form data в POST запросах и даже мозилла, не всегда показывает, на сколько я понял это из-за джава скриптов, которые все это делают на страничке за тебя (в смысле отправляют запрос).
За хромиумы не скажу, а в мозилле я с таким не сталкивался. Буду теперь иметь ввиду, вдруг наткнусь на такой баг.

Занятная статья.
Я сам делал очень похожее несколько лет назад. Устройством, правда, был не роутер, а две Nanostation Loco M5, собранные в мост. Мне нужно было выводить уровень сигнала и скорость линка в дашборд, и я сделал примерно так же — питоноскрипты, ползающие по вебу.


Пара замечаний(было больше, но про девтулс уже написали 8):


  1. Код. Он ужасен. Функции, возвращающие либо строку с ошибкой, либо id, break после return и прочее. Однако, добавлю конструктива — если вам не пофиг, то по качеству кода я могу накидать замечаний в гитхаб или какой-то другой сервис, если код вы выложите туда.
  2. Вы ошибаетесь, считая, что не храните пароль в открытом виде. То есть, сам-то пароль, конечно, да. Но у вас в открытом виде лежит строка, которая позволяет авторизоваться на веб-интерфейсе роутера. Это не то, чтобы плохо — вам в любом случае пришлось бы либо хранить что-то, либо требовать ввода от пользователя, я лишь хочу указать на ошибку в тексте.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории