Emulieren Sie die Konsolenanmeldeanforderung an den Router

536
Flu

Ich versuche, die Einstellungen meines Routers über die Befehlszeile meines Ubuntu-Computers einzugeben. Es ist nicht eines dieser teuren Router-Modelle, die über einen speziellen Konsolenport verfügen, sondern eher ein "normaler" für Familien und so ein ASUS. Ich denke nicht, dass das Modell relevant ist. Was ich tun möchte, ist im Grunde das Äquivalent dazu, Ihren Browser zu öffnen, die Standard-Gateway-Adresse einzugeben und den Benutzernamen und das Kennwort einzugeben. Gibt es eine Möglichkeit, einen solchen Prozess mit ... Python oder Locken zu emulieren?

Was habe ich versucht?

  • Ich habe versucht, Chrome in den Entwicklertools und auf der Registerkarte "Netzwerk" einzugeben, um zu sehen, welche Anforderung mein Browser abruft und welche Art von Antwort ich von meinem Router bekomme. Das macht keinen Sinn. Ich habe so etwas noch nie gesehen und es hat mich nur mehr verwirrt.
  • Ich habe versucht, Get- und Post-Anfragen mit meinem Benutzernamen und Kennwort mit curl, der Anforderungsbibliothek von Python und mit XMLHttpRequest in JavaScript zu senden. Kein Glück, nur eine Nachricht mit 401, unbefugt oder etwas über eine missgebildete Anfrage zurückbekommen.

Was versuche ich zu erreichen?

Kurz gesagt, ich hoffte, ich könnte den Prozess irgendwie automatisieren und bestimmte Automatisierungen vornehmen. Ich würde auf meinem Ubuntu-Rechner ein Skript ausführen, das den Benutzernamen und das Kennwort sendet, den Inhalt dessen zurücksendet, was der Router zurücksendet (was vermutlich HTML und CSS und JavaScript zum Verwalten der Schnittstelle ist) und etwas damit zu tun haben. Was noch besser ist, ist, tatsächlich an die Befehlszeile des Routers zu gelangen und die Einstellungen von dort zu ändern (ich weiß, dass dies wahrscheinlich schwer zu erreichen ist, aber ein Mann kann es versuchen).

0
Sie sollten sich das Add-On ** Selenium IDE ** anschauen. Ich habe es mit Firefox unter Ubuntu verwendet, aber es ist möglicherweise auch auf anderen Browsern und Plattformen verfügbar. Die andere Möglichkeit, die Router-Funktionen zu automatisieren, ist die Verwendung von Telnet mit einem Skript. Beide Methoden haben bei mir auf meinem TP-Link-Router funktioniert. AFH vor 6 Jahren 0
Setzen Sie [openwrt] (https://openwrt.org/) oder [ddwrt] (https://dd-wrt.com/) darauf, dann können Sie leicht über ssh auf Ihren Router zugreifen. Es wäre eine viel bessere Lösung. Ipor Sircer vor 6 Jahren 1
@Ipor Sircer das Betriebssystem des Routers zu ändern, ist keine Option Flu vor 6 Jahren 0

1 Antwort auf die Frage

-1
tjanson

Sie sollten auf jeden Fall in der Lage sein, das zu erreichen, was Sie wollen. Die Frage ist, welche Abstraktionsebene Sie verwenden möchten.

Sie haben die einfache Methode ausprobiert: Sie haben versucht, die Anforderungen mit curl oder einem Python-Skript zu emulieren. Ich denke, es ist eine gute Herangehensweise und sollte machbar sein. (Vergleichen Sie beispielsweise diesen super einfachen Curl-Aufruf auf einem TP-Link-Router . Dort sind lediglich Auth und ein Referrer erforderlich - hey, vielleicht ist der Referrer auch alles, was Sie brauchen?) Aber ohne das Web-Interface zu sehen, kann ich nicht spezifische Beratung anbieten.

Dann gibt es noch einen höheren Level: Verwenden Sie einen Headless-Browser und simulieren Sie die genauen Benutzereingaben auf der Seite. CasperJS kann geeignet sein; Ihre Dokumente sollten Ihnen einen guten Ausgangspunkt geben. Natürlich ist dies eine ziemlich schwierige Angelegenheit, aber es wird die Arbeit erledigen.

Ich wende mich ab, weil diese Frage zu weit ist und einige Annahmen zur Gleichheit aufstellt, wie dies zu erreichen ist. Daher wird jede hier veröffentlichte Antwort ehrlich gesagt niemals eine Antwort sein und eine schlechte Frage wird (leider) durch die Veröffentlichung einer solchen Antwort gefördert. Der Kommentar von Ipor Sircer ist zu 100% korrekt: Die Bereitstellung einer Open-Source-Firmware, die den SSH-Zugriff auf das Gerät ermöglicht, ist wirklich der beste Weg. JakeGould vor 6 Jahren 0
Ich stimme dir nicht zu. Ein Teil der Frage (will Benutzereingaben automatisieren) ist ziemlich spezifisch und wird hier beantwortet. Und obwohl ich selbst ein Fan von OpenWRT bin, ist die Beantwortung einer Automatisierungsfrage mit "Installieren einer anderen Firmware" ohne Kenntnis weiterer Anforderungen ein großer Sprung. tjanson vor 6 Jahren 0