![]() |
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:10 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