Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Router ansprechen (https://www.delphipraxis.net/71092-router-ansprechen.html)

Trödel 8. Jun 2006 18:26


Router ansprechen
 
Folgendes, mit diesem
Delphi-Quellcode:
  ShellExecute(Handle, '', 'http://admin:xxxxxxxxxxxxxxx@192.168.0.1/setup.cgi?todo=disconnect&this_file=st_poe.htm', nil, nil, SW_HIDE);
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.

Dank im voraus

marabu 8. Jun 2006 18:43

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

Trödel 8. Jun 2006 18:47

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.

himitsu 8. Jun 2006 18:52

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?

marabu 8. Jun 2006 18:57

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

Mystic 8. Jun 2006 20:27

Re: Router ansprechen
 
Wenn dein Router es unterstützt, kannst du die Verbindung per UPnP kappen.

Trödel 8. Jun 2006 22:01

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?

marabu 10. Jun 2006 09:15

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:

Zitat von Trödel
Das Problem mit der automatischen Einwahl liegt bei Thunderbird bzw Firefox.

Es gibt bei deiner Konfiguration keine automatische Einwahl durch einen Internet-Client, die Verbindungseinstellungen von FireFox müssen auf "direct connection to the internet" gesetzt sein.

Bitte überprüfe das, bevor wir uns in das Abenteuer INDY stürzen.

Freundliche Grüße

marabu

Mystic 10. Jun 2006 09:24

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
UPnP API Dokumentation

UPnP Interface Standard für Internet-Gateways

Trödel 10. Jun 2006 10:28

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 22:54 Uhr.
Seite 1 von 2  1 2      

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