![]() |
router fernsteuern
hi
ich will einen router "fernsteuern", also mit nem delphi-prog in die firmware rein, und da die funktionen benutzen zur not sogar, das ich nen dummy mache, der so tut als würde das alles der nutzer machen, also mit dem prog einen mausklick auf position (123|456) emulieren geht das? |
Re: router fernsteuern
moin,
ja, das sollte möglich sein. Ich hab mir für meinen Router (SMC Barricade) ein Prog geschrieben, mit dem ich auf dessen Http-Interface zugreifen kann und mich somit einlogen und die Routerfunktionen verwenden kann. |
Re: router fernsteuern
smc barricade???
habbich auch.. ist das prog os???? bitte bitte bitte... |
Re: router fernsteuern
hm, naja, schreibs dir lieber selbst ... mein Progi ist arg verbuggt, aber ich kann dir gerne die relevanten Passagen geben. sek. muss sie nur zusammen kopieren.
|
Re: router fernsteuern
mein problem ist, das ich davon 0 ahnung und keinen ansatz habe
wär für mich stochern im nebel... ich muss nur wissen, wie du den router ansprichst... |
Re: router fernsteuern
ich vermute mal über das Integrierte Web-interface des Routers
=> Indy HTTP-Client ;) und in den Rückgaben des Routers dann nach den benötigten Werten parsen |
Re: router fernsteuern
so:
Die Kommunikation mit dem Router läuft über Http, und zwar habe ich da die Indi-Komponente verwendet. Zum Code: SL_Router ist eine tStringlist, in die die Antwort auf die Http-Get-Anfrage gespeichert wird. ini ist vom Typ tinifile und beinhaltet die benötigten Parameter, die in einem inifile gespeichert sind. IdHTTP1 ist die Http-Komponente von Indi.
Delphi-Quellcode:
das ini-File beinhaltet folgendes:
var SL_Router: tstringlist;
ini: tinifile; {-------- Router-Kommunikation + HTTP -----------------------------------------} procedure HTTPAnfrage(Anfrage:string); begin SL_Router.Clear; // SL_Router.Add(IdHTTP1.Get(Anfrage)); end; function RouterKLogin:boolean; begin try HTTPAnfrage('http://'+ini.ReadString('Router','IP','')+ini.ReadString('Router','Login-Sequenz','')+ini.ReadString('Router','Passwort','')); except on E: Exception do begin If pos('302',E.Message)<>0 // siehe Http-Error-Codes then result:=true else result:=false; end; end; end; function eRouterKLogout:boolean; begin try HTTPAnfrage('http://'+ini.ReadString('Router','IP','')+ini.ReadString('Router','Logout-Sequenz','')); except on E: Exception do begin If pos('302',E.Message)<>0 then result:=true else result:=false; end; end; end; procedure RouterKommunikation(typ:integer); // typ = 1 Verbindung herstellen begin // typ = 2 Verbindung trennen try // typ = 3 Status abfragen If eRouterKLogin then begin case typ of 1:begin try ehttpanfrage('http://'+ini.ReadString('Router','IP','')+ini.ReadString('Router','Verbinden-Sequenz','')); except on E: Exception do If pos('302',E.Message)=0 then ;// fehlgeschlagen end; end; 2:begin try ehttpanfrage('http://'+ini.ReadString('Router','IP','')+ini.ReadString('Router','Trennen-Sequenz','')); except on E: Exception do If pos('302',E.Message)=0 then ;// fehlgeschlagen end; end; 3:begin try ehttpAnfrage('http://'+ini.ReadString('Router','IP','')+ini.ReadString('Router','Status-Sequenz','')); If AnsiContainsText(SL_Router.text,ini.ReadString('Router','Indikator-Verbunden-Sequenz','XXX'))then begin // Verbunden:=true; end else If AnsiContainsText(SL_Router.text,ini.ReadString('Router','Indikator-Getrennt-Sequenz',''))then begin // Verbunden:=False; end; except end; end; end; end; eRouterKLogout; end;
Code:
[Router]
IP=192.168.2.1 Port=80 Passwort=PASSWORT Login-Sequenz=/cgi-bin/login.exe?pws= Logout-Sequenz=/cgi-bin/logout.exe Verbinden-Sequenz=/cgi-bin/statusprocess.exe?connect=+connect+ Trennen-Sequenz=/cgi-bin/statusprocess.exe?disconnect=disconnect Status-Sequenz=/status_main.stm Indikator-Verbunden-Sequenz=bWanConnected=1 Indikator-Getrennt-Sequenz=bWanConnected=0 |
Re: router fernsteuern
Wenn der SMC Telnet unterstützt, würde ich das dem Webinterface vorziehen. So habe ich das zumindest vor einiger Zeit bei meinem Elsa Router getan.
Gruß, Markus |
Re: router fernsteuern
@DaFox: ich hab keine Ahnung ob der sowas unterstützt, geschweigedenn wie das ginge :roll:
@glkbkk: ich kann dir nicht sagen, ob die Parameter, die für meinen Router ( SMC Barricade SMC7404BRB ) auch für deinen gelten, aber du kannst es ja ausprobieren und wenn es nicht funzt musst du dir halt den Quellcode der Interface seiten anschaun und nach prüfen was bei dir gilt. |
Re: router fernsteuern
Zitat:
Wenn eine Verbindung hergestellt werden kann, dann unterstützt Dein Router Telnet. :) Gruß, Markus |
Re: router fernsteuern
hm, scheint leider nicht zu funzen:
"Es konnte keine Verbindung mit dem Host hergestellt werden, auf Port 23: Verbindung fehlgeschlagen" |
Re: router fernsteuern
Liste der Anhänge anzeigen (Anzahl: 1)
ich habs ma probiert
ich kriegs nicht hin ich poste mal meinen versuch, was ist daran falsch? bei jedem aufruf von httpanfrage gibtsn fehler was tut die überhaupt? |
Re: router fernsteuern
Liste der Anhänge anzeigen (Anzahl: 1)
so gehts:
nicht vergessen: in der Inidatei das Passwort anpassen!!! PS: Nicht wundern, bei jedem Aufruf von IdHttp1.Get bringt Delphi zur Laufzeit eine Fehlermeldung (obwohl der Fehler gewollt ist und auch abgefangen wird). Das ist normal so. einfach OK klicken und F9 (Start) drücken. |
Re: router fernsteuern
der zeigt aber offline an, obwohl ich online bin :gruebel:
|
Re: router fernsteuern
dann stimmen die Daten im inifile nicht...
1. hast du das Passwort richtig eingegeben? 2. stimmt die IP des Routers? 3. welchen Router hast du genau? 4. gib mal ![]() |
Re: router fernsteuern
pwd und ip stimmen, mein router ist smc barricade 7004 v 2
sorry,smc barricade 7004 abr v.2... ich nutze jetzt ein freeware-prog dazu, aber wenn doch noch einer sieht worans liegt.... |
Re: router fernsteuern
wie gesagt, die Login-Parameter werden ein bischen anders sein... müsstest du halt mal testen:
![]() |
Re: router fernsteuern
ich habs gemacht, da kommt dann eine weisse seite, schwarze schrift
Zitat:
|
Re: router fernsteuern
hm, da ist wohl in der Tat die Loginsite eine andere ... wenn du dein eigenes Steuerprogramm haben willst musst du dir den Quellcode der Loginsite mal genauer anschaun bzw. mir zeigen :roll:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:04 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