AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Speedport IP dynamisch ändern.

Speedport IP dynamisch ändern.

Ein Thema von EWeiss · begonnen am 1. Apr 2013 · letzter Beitrag vom 2. Apr 2013
Antwort Antwort
Seite 1 von 2  1 2   
EWeiss
(Gast)

n/a Beiträge
 
#1

Speedport IP dynamisch ändern.

  Alt 1. Apr 2013, 23:21
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.

Das Problem dabei ist nur das ich in dem fall fremde Dateien verwenden muss.

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
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Speedport IP dynamisch ändern.

  Alt 1. Apr 2013, 23:43
Würde ich mit den Indys TIdHttp versuchen (auch wenn du am liebsten NonVCL schreibst )
Alternativ gäbe es noch http://synapse.ararat.cz/doku.php/

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)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo ( 1. Apr 2013 um 23:46 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: Speedport IP dynamisch ändern.

  Alt 2. Apr 2013, 00:05
Danke für die Infos.
Da ich mich in VB was Controls angeht etwas besser auskenne hab ich einen kleinen Test gemacht.

Code:
    Dim URL As String
    URL = "http://" & Text1.Text & "/cgi-bin/disconnect.exe"
    WebBrowser1.Navigate2 URL
Damit lade ich zumindest schon mal die Konfigurationsseite des Speedport in den versteckten Browser.
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:
Für beide benötigst du in jedem Fall (da https) die OpenSSL dlls
Jup auch für Curl
Das Problem dabei jeder macht sein eigenes Ding mit den Libs.

gruss

Geändert von EWeiss ( 2. Apr 2013 um 00:09 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Speedport IP dynamisch ändern.

  Alt 2. Apr 2013, 00:12
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.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: Speedport IP dynamisch ändern.

  Alt 2. Apr 2013, 00:19
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.
Du musst zunächst per POST opss.. zu wenig Erfahrung

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
http://speedport.ip

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
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Speedport IP dynamisch ändern.

  Alt 2. Apr 2013, 00:26
Das mit dem Eintragen von Daten in ein Webformular und abschicken geht auch per Code und somit auch mit verstecktem Fenster.

http://www.delphipraxis.net/171367-t...usfuellen.html
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: Speedport IP dynamisch ändern.

  Alt 2. Apr 2013, 00:32
Das mit dem Eintragen von Daten in ein Webformular und abschicken geht auch per Code und somit auch mit verstecktem Fenster.

http://www.delphipraxis.net/171367-t...usfuellen.html
Ahh supi Danke.
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
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

AW: Speedport IP dynamisch ändern.

  Alt 2. Apr 2013, 00:44
Dein Analyzer Projekt gibt mir nun aus
Zitat:
2 Elemente gefunden
===== 0 =====
<INPUT type=hidden value=0 name=login_pwd>
===== 1 =====
<INPUT class=stylepwd maxLength=12 size=12 type=password value="" name=pws>
Kannst mir den Quelltext zur Verfügung stellen? Generics dürften unter D2010 ja kein Problem sein.

Vielleicht könnte ich drauf aufbauen. MSHTML_Tool.
Wäre etwas einfacher für mich

gruss

Geändert von EWeiss ( 2. Apr 2013 um 06:10 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#9

AW: Speedport IP dynamisch ändern.

  Alt 2. Apr 2013, 03:41
Habe es jetzt soweit das ich das Passwort automatisch eingeben kann.
Hoffe das ist so richtig.

Delphi-Quellcode:
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;
Habe aber immer noch das Problem mit dem Script Fehler.
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

Geändert von EWeiss ( 2. Apr 2013 um 20:12 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: Speedport IP dynamisch ändern.

  Alt 2. Apr 2013, 10:33
Sodele, ich hab dann mal die Quellen raus gekramt

Bei Fragen einfach die Hand heben
Angehängte Dateien
Dateityp: zip MSHTML_Tools.zip (932,6 KB, 16x aufgerufen)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz