![]() |
Speedport IP dynamisch ändern.
Wie könnte ich das am dümmsten anstellen die IP am Speedport dynamisch zu ändern?
Ich hab es mal mit Curl versucht indem ich einfach mit ner Batch Datei den Router neu starte. Zitat:
Alternativ habe ich noch ein Skript für JDownloader 2 auch mit diesen könnte ich den Router neustarten. Aber auch wieder ein fremdes Programm. (Was Installiert werden muss) Mir fehlt jetzt die Anbindung wie ich das Skript parsen müsste um zum Erfolg zu kommen.
Code:
[[[HSRC]]]
[[[STEP]]] [[[REQUEST https="true"]]] POST /cgi-bin/login.cgi HTTP/1.1 Host: speedport.ip Referer: https://speedport.ip/ Content-Type: application/x-www-form-urlencoded login_pwd=1&pws=%%%pass%%% [[[/REQUEST]]] [[[/STEP]]] [[[STEP]]] [[[REQUEST https="true"]]] GET /cgi-bin/disconnect.exe HTTP/1.1 Host: %%%routerip%%% [[[/REQUEST]]] [[[/STEP]]] [[[STEP]]] [[[REQUEST https="true"]]] GET /cgi-bin/connect.exe HTTP/1.1 Host: %%%routerip%%% [[[/REQUEST]]] [[[/STEP]]] [[[/HSRC]]] Wie könnte ich das mit eigener Anwendung realisieren bei der ich 2 Dinge übergeben müsste das Passwort für den Router und den Link zum Neustart des Routers. Mit Winsock oder Webbrowser in Delphi bin ich nicht so bewandert. gruss |
AW: Speedport IP dynamisch ändern.
Würde ich mit den Indys
Delphi-Quellcode:
versuchen (auch wenn du am liebsten NonVCL schreibst ;))
TIdHttp
Alternativ gäbe es noch ![]() Das Skript von JDownloader beinhaltet ja schon alle Aufrufe, die müsstest du fast 1:1 so verwenden können Für beide benötigst du in jedem Fall (da https) die OpenSSL dlls (also eigentlich auch was externes) |
AW: Speedport IP dynamisch ändern.
Danke für die Infos.
Da ich mich in VB was Controls angeht etwas besser auskenne hab ich einen kleinen Test gemacht.
Code:
Damit lade ich zumindest schon mal die Konfigurationsseite des Speedport in den versteckten Browser.
Dim URL As String
URL = "http://" & Text1.Text & "/cgi-bin/disconnect.exe" WebBrowser1.Navigate2 URL Das Problem ist nur das er mir einen Fehler meldet da das interne Skript das Passwort erwartet bevor ich den Router neustarten kann. Starte ich die Konfiguration von Hand gebe das Passwort ein dann läuft alles also der Router startet dann neu mit meinem Test Projekt. Gibt es einen weg das Passwort vorher zu übergeben? Bevor ich disconnect.exe aufrufe? Mist Router mit FritzBox ist das kein Problem. Zitat:
Das Problem dabei jeder macht sein eigenes Ding mit den Libs. gruss |
AW: Speedport IP dynamisch ändern.
Du musst zunächst per POST das Kennwort senden (so wie im JDownloader-Skript)
Hmmm, wenn du ein Browserfenster verwendest, dann müsstest du die Login-Seite aufrufen, das Kennwort in das Feld eintragen und das Formular abschicken. |
AW: Speedport IP dynamisch ändern.
Zitat:
Ja wenn ich das so mache geht es auch also Manuell im IE Aus dem Programm wo ich auch einen Browser verwende nicht da kommt der User nicht dran da dieses Fenster versteckt ist. Das Login-Fenster ist ja ![]() Es soll ja auch alles mit einem klick auf einen Button erledigt sein. Muss mich dann wohl oder übel doch mal schlau machen wie ich das unter Delphi bewerkstelligt bekomme. Paar Tipps hab ich ja schon ;) gruss |
AW: Speedport IP dynamisch ändern.
Das mit dem Eintragen von Daten in ein Webformular und abschicken geht auch per Code und somit auch mit verstecktem Fenster.
![]() |
AW: Speedport IP dynamisch ändern.
Zitat:
Denke das hilft mir schon mal weiter. Mein momentaner Skriptfehler ist.. Die Eigenschaft Childnodes eines undefinierten oder Nullverweises kann nicht abgerufen werden. Wenn ich den Code mal durchgehe wird sich eine Lösung finden lassen. Man lernt nie aus :) gruss |
AW: Speedport IP dynamisch ändern.
Dein Analyzer Projekt gibt mir nun aus
Zitat:
Vielleicht könnte ich drauf aufbauen. MSHTML_Tool. Wäre etwas einfacher für mich ;) gruss |
AW: Speedport IP dynamisch ändern.
Habe es jetzt soweit das ich das Passwort automatisch eingeben kann.
Hoffe das ist so richtig.
Delphi-Quellcode:
Habe aber immer noch das Problem mit dem Script Fehler.
procedure TForm1.Button1Click(Sender: TObject);
var ChildElement: OleVariant; URL: OleVariant; begin if edpasswort.Text = '' then exit; if edNewIp.Text <> '' then edOldIP.Text := edNewIp.Text; edNewIp.Text := ''; // Webseite aufrufen in Offline Modus Wb.Navigate ('https://speedport.ip'); // Warte bis Webseite geladen WaitForBrowser(Wb, 50); if not Assigned(WB.Document) then Exit; ChildElement := Wb.OleObject.document.forms.item(0); ChildElement.Elements.item('login_pwd').value := 0; if not VarIsDispatchObject(ChildElement) then raise Exception.CreateFmt('Web-Formalar %s nicht gefunden', ['input']); ChildElement.Elements.Item('pws').value := edpasswort.Text; SubmitWebForm(ChildElement); // Router beenden URL := 'http://' + edSpeedportHost.Text + '/cgi-bin/disconnect.exe'; wb.Navigate2(URL); // etwas längere Pause das kann dauern bis die IP // aktualisiert wurde WaitForBrowser(Wb, 100); // Router neustarten URL := 'http://' + edSpeedportHost.Text + '/cgi-bin/connect.exe'; Wb.Navigate2(URL); btnNewIP.Enabled := True; end; Seltsamer weise tritt das bei dir im MSHTML_Tools nicht auf Würde mich mal interessieren warum nicht bzw. was ich da falsch mache. gruss |
AW: Speedport IP dynamisch ändern.
Liste der Anhänge anzeigen (Anzahl: 1)
Sodele, ich hab dann mal die Quellen raus gekramt :)
Bei Fragen einfach die Hand heben :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz