![]() |
Router ansprechen
Folgendes, mit diesem
Delphi-Quellcode:
spreche ich meinen Router an, um die DSL-Verbindung zu kappen bzw herzustellen. Dabei habe ich nur eine Kleinigkeit, die mich stört: es wird jedesmal der Browser geöffnet, mit der Mitteilung das ich mich als Admin anmelden möchte. Wie kann ich diesen Schwachfug unterbinden? Und das ohne großen Aufwand (sprich Komponenten), da ich weiter nichts möchte außer Verbindung kappen/herstellen.
ShellExecute(Handle, '', 'http://admin:xxxxxxxxxxxxxxx@192.168.0.1/setup.cgi?todo=disconnect&this_file=st_poe.htm', nil, nil, SW_HIDE);
Dank im voraus |
Re: Router ansprechen
Hallo,
bist du denn sicher, dass du dich per basic authentication an deinem Router anmelden kannst? Ich eher nicht. Offensichtlich verlangt dein Router eine Kennworteingabe in einem eigens dafür bereitgestellten Login-Formular. Du könntest mit der Indy HTTP Komponente arbeiten um diesen vorgeschalteten Dialog nicht sichtbar werden zu lassen. Der Schwachfug dient deiner Sicherheit. Warum musst du überhaupt die Verbindung aus deinem Programm unterbrechen bzw. explizit herstellen? Normalerweise machen Router das zeitgesteuert und automatisch. Freundliche Grüße vom marabu |
Re: Router ansprechen
Bin ich mir. Paßwort wird ja mit übergeben. Er teilt mir nur mit, dass ich mich als admin anmelden möchte und wartet dann auf einen klick auf ok. Und dann führt er das aus, was er soll.
Ja macht er, aber mit Thunderbird bzw Firefox haut das nicht so richtig hin. |
Re: Router ansprechen
Wenn die Verdinung ja dennoch erstellt/getrennt wird: Schon mal versucht das einfach per URLDownloadToFile, INDY, oder Co. zu machen ... halt irgendwas, wo die Seite irgendwo reingelesen wird?
|
Re: Router ansprechen
Das naheliegendste wäre ja dann deinen Internetzugang korrekt zu konfigurieren.
Wenn dein Router die direkte Anmeldung gestattet, aber eine Bestätigung erwartet und du das nicht wegkonfigurieren kannst, dann bleibt es dabei: du musst den Browser automatisieren oder den HTTP-Request über Indy absetzen. Indy hat den Vorteil, dass nichts gerendert wird. Willst du den Browser automatisieren, dann ist es wahrscheinlich am einfachsten für dich, wenn du gleich mit dem TWebBrowser arbeitest. marabu |
Re: Router ansprechen
Wenn dein Router es unterstützt, kannst du die Verbindung per UPnP kappen.
|
Re: Router ansprechen
@marabu: Router Automatische Einwahl, wenn nötig. Verbindung trennen na ch 5 Min Leerlauf. Das Problem mit der automatischen Einwahl liegt bei Thunderbird bzw Firefox. In dem Augenblick, wo die Verbindung besteht erklärt mir Thunderbird das er keine Verbindung zum Postfach bekommt, dgl Firefox, angeblich nicht zum entsprechenden Server. Aber egal, dass ist nicht das Thema. Indy ok, aber damit hab ich noch nichts zu tun gehabt, wäre in dem Falles für Hilfe dankbar.
@Mystic: wie? |
Re: Router ansprechen
Hallo Trödel,
mag sein, dass es nicht das Thema ist - aber es ist die Ursache deines Problems. Nur um sicher zugehen, wenn du deinen Router so konfiguriert hast, wie du schreibst, dann irritiert mich das hier: Zitat:
Bitte überprüfe das, bevor wir uns in das Abenteuer INDY stürzen. Freundliche Grüße marabu |
Re: Router ansprechen
Du brauchst die Type Library aus upnp.dll.
Zuerst den Verbindungs-Dienst finden: Dazu nach allen Geräten suchen¹ und die Dienste² sämtlicher Geräte und Untergeräte³ durchgehen bis ein Dienst vom Typ⁴ urn:schemas-upnp-org:service:WANIPConnection oder urn:schemas-upnp-org:service:WANPPPConnection gefunden wird. Dann eine der Aktionen RequestConnection (Verbindung herstellen), RequestTermination (Verbindung so früh wie möglich kappen, siehe IGD Standard) oder ForceTermination (Verbindung sofort kappen) des Dienstes ausführen⁵. Keine der Aktionen benötigt Argumente⁶. Der aktuelle Verbindungsstatus steht in der Statusvariable⁷ ConnectionStatus.
Delphi-Quellcode:
¹ DeviceFinder.FindByType('upnp:rootdevice',0)
² IUPnPDevice.Services ³ IUPnPDevice.Children ⁴ IUPnPService.ServiceTypeIdentifier ⁵ IUPnPService.InvokeAction ⁶ VarArrayOf([]) // Leeres Argumentenarray ⁷ IUPnPService.QueryStateVariable ![]() ![]() |
Re: Router ansprechen
@marabu: ist direktverbindung zum internet. Und so krass ist Indy ja nun auch nicht.
@Mystic: werd ich mal probieren. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:41 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