1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Speedport-Router neustarten

Dieses Thema im Forum "Support & Discussion" wurde erstellt von M4rquez, 24. Januar 2019.

  1. M4rquez

    M4rquez New Member

    Registriert seit:
    27. Dezember 2018
    Beiträge:
    10
    Zustimmungen:
    2
    Punkte für Erfolge:
    3
    Hey Leute,

    ich versuche gerade mir ein Python-Skript zu erstellen, das meinen Speedport-Router neustartet.

    Ich habe es bereits geschafft mich mit meinen Daten über das Skript einzuloggen, wodurch mir der Session-Cookie zurückgegeben wird.
    Wenn ich nun versuche die URL mit dem Reboot-Skript des Routers aufzurufen und dabei den Session-Cookie mitgebe, funktioniert dies leider nicht.

    Das Merkwürdige ist aber: Wenn ich mich nicht über das Skript einlogge, sondern manuell, und dabei den Session-Cookie von Hand auslese und diesem meinem Skript übergebe, dann kann ich den Router neustarten.

    Weis jemand, warum mein Skript nicht vollautomatisch funktioniert?
    Ich hab bereits pausen zwischen den einzelnen Seitenaufrufen eingebaut,
    auch die Zwischenseiten aufgerufen die man brauch um zum Neustarten des Routers zu kommen,
    irgendwas überprüft der Router noch, was ich in meinem Skript nicht beachte..

    Code (Python):

    # FUNKTIONIERT NICHT
    values = {'Username' : 'GEHEIMER-BENUTZERNAME', 'Password' : base64.b64encode('GEHEIMES-PASSWORT')}
    r = requests.post('http://speedport.ip/index/login.cgi', data = values)
    cookie = {r.text[0:r.text.find("=")]:r.text[r.text.find("=")+1:]}
    r = requests.post('http://speedport.ip/auth/reboot.cgi?RequestFile=/pub/hcti_pubinfo.php', cookies = cookie)

    # FUNKTIONIERT
    cookie = {'MANUELL-AUSGELESENER-COOKIE-KEY':'MANUELL-AUSGELESENER-COOKIE-VALUE'}
    r = requests.post('http://speedport.ip/auth/reboot.cgi?RequestFile=/pub/hcti_pubinfo.php', cookies = cookie)
     
     
  2. krusty

    krusty Moderator Mitarbeiter Moderator

    Registriert seit:
    1. Juli 2017
    Beiträge:
    86
    Zustimmungen:
    33
    Punkte für Erfolge:
    18
    Geschlecht:
    männlich
    Ort:
    Wadiya
    Hey, hier mal meine kurzen Gedankengänge:

    Schau mal hier, die Firefox Developer Tools: https://developer.mozilla.org/de/docs/Tools/netzwerkanalyse
    damit kannst du HttpRequests sniffen, editieren und erneut absenden. Bevor ich einen Bot schreibe, versuche ich den Login zuerst im mittel der Developer Tools manuell zu rekontruieren, bevor ich mich ans Programmieren setze.

    * Bei einigen Webseiten ist es so, dass beim beim Aufruf der Seite schon ein Cookie gesetzt wird. Schaue mal im Browser genau nach, wann welche Cookies gesetzt werden.

    * Einige Webseiten betrachten den Referer. Der gibt an "von welcher URL" man auf die aktuelle Seite gekommen ist. Betrachte mal den Referer.

    * Sicher, dass die Base64 Funktion das gleiche Ergebnis liefert und du es nicht noch in einen Hex-String umwandeln musst?

    * Sicher, dass du deinem Code die richtigen Cookies ausschneidest?

    Einige Router unterstützen Telnet oder UPNP, eventuell könnte man einen Router damit neustarten.
     
  3. M4rquez

    M4rquez New Member

    Registriert seit:
    27. Dezember 2018
    Beiträge:
    10
    Zustimmungen:
    2
    Punkte für Erfolge:
    3
    Hey krusty,

    danke dir für deine Antwort. :)

    Habe am Anfang nur in Chrome die HttpRequests mitverfolgt, die kann man dort meines Wissens nach aber nicht bearbeiten und erneut senden,
    guter Tipp, dass das in Firefox möglich ist.

    * An Cookies wurde nur der Session-Cookie nach dem Login gesetzt.

    * Referer und User-Agent habe ich beides gesetzt, leider ohne Erfolg.

    * Base64 Funktion liefert dasselbe. Bei ungültigen Anmeldedaten liefert er nämlich auch keinen Cookie zurück.

    * Es gibt nur einen Cookie und der wurde mit dem Skript auch richtig ausgeschnitten.

    Schlussendlich hab ich viel versucht..
    Durch erneutes Senden der HttpRequests in Firefox ist es mir auch nicht gelungen den Router neuzustarten, obwohl ich dort wie auch in meinem Skript einen neuen Cookie erhalten habe.
    Das war mir dann schließlich zuviel Aufwand mit den Requests und ich hab das dann mit Selenium gelöst.
    Was jetzt zum Glück alles so funktioniert wie es soll.^^
     
    krusty gefällt das.
  4. krusty

    krusty Moderator Mitarbeiter Moderator

    Registriert seit:
    1. Juli 2017
    Beiträge:
    86
    Zustimmungen:
    33
    Punkte für Erfolge:
    18
    Geschlecht:
    männlich
    Ort:
    Wadiya
    M4rquez gefällt das.
  5. M4rquez

    M4rquez New Member

    Registriert seit:
    27. Dezember 2018
    Beiträge:
    10
    Zustimmungen:
    2
    Punkte für Erfolge:
    3
    "Keep Alive" Flag war im Browser gesetzt, in meinem Code allerdings nicht.. Daran könnte es gelegen haben! ;-)

    Ja das mit Selenium war auch so eine Sache, habe phantomjs versucht, stand dran es wäre deprecated, dann habe ich es mit chrome versucht, woraufhin auch wieder irgendein Fehler kam, der sich nicht einfach beheben ließ..

    Versteckt Starten hat dann aber mit dem Firefox Browser geklappt. :)
     
  6. krusty

    krusty Moderator Mitarbeiter Moderator

    Registriert seit:
    1. Juli 2017
    Beiträge:
    86
    Zustimmungen:
    33
    Punkte für Erfolge:
    18
    Geschlecht:
    männlich
    Ort:
    Wadiya
    Cool, wie hast du ihn versteckt gestartet?
    Vlt hast du ja lust ein kleines Tutorial zu schreiben, oder dir eine oder andere Quelle zu verlinken :)
     

Diese Seite empfehlen

Die Seite wird geladen...