Kommunizieren mit Router

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

Hallo NTQ

Ich hatte zwar hier (weiter oben) im Thread einen Link gepostet, auf dessen Du schon mal gepostet hast. Wie wälst du dich im Router ein? Mußt du z.B. mit der Comschnittstelle und dem Hyperterminal, oder kannst du deinen Router auch direkt in dem IE mit IP Benutzername und Passwort anmelden um dann in den Konfigurationsdaten zu gelangen?
Bei mir wird jeder Link zu den einzelnen buttons als http://... angezeigt. Und wo die aktuelle IP im Router angezeigt wird, solte auch in deinem Handbuch stehen.

Den Code kann man dann sehr leicht anpassen, wenn man es nur für den eigenen Router machen will.

Sollte lt. Andre auch in PureArea.net kommen, aber ich finde unter 'IP'
nur 2 Einträge. Oder hab ich da vielleicht was übersehen @Andre? :roll:

MfG Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
deMattin
Beiträge: 87
Registriert: 30.08.2004 13:36
Wohnort: Ruhrpott
Kontaktdaten:

Beitrag von deMattin »

Wie ich schon geschrieben habe, funktioniert das bei NickTheQuick nicht per http Aufruf mit Parameter im Aufrufstring, da er per "post" die Parameter an das cgi-Skript übergeben muss - und das nur zum Einloggen in's Webinterface! Danach läuft's vermutlich per "get"-Aufrufen weiter in der gleichen Session.
Daher ist das auch nichts mit "einfach mal anpassen", da ein einfacher Link mit Parametern eben ein get-Aufruf ist.
Hinter einem Button kann zwar auch ein get-Aufruf stecken, aber die meisten Routerhersteller mit dieser Philosopie (Einloggen nicht per http-Auth) gehen immer mehr zu "post" über, da man hier keinen Klartext-Link mit dem Passwort übertragen muss.

Danke an nightsky für deine Routinen. :allright:
Ich werde die mal testen und dann auch als Test der Routinen ein Minitool bauen, mit dem man sich dann nur die IP aus dem Router holen kann und den online/offline-Status des Routers als TrayIcon sieht.

Also wird mein "Test-Abfallprodukt" (nicht abwertend) genau das sein, was hier einige eventuell benötigen. Der Code sollte überschaubar bleiben und dann auch per Konfiguration / Checkbox die verschiedenen Authentifizierungen zur Auswahl anbieten.
Der Code ist dann sicher auch was für die Tipps-Rubrik.

Ich beschäftige mich mit Routern seit mehr als 4 Jahren und mit Routertools, die das Webinterface oder telnet auswerten sicherlich schon 3 Jahre. Seit ca. 8-9 Monaten arbeite ich selber an meinem (Freeware)Tool bzw. an der Vorbereitung des Programms.
Es ist wirklich nicht so einfach, wenn man was universelles für alle Router machen möchte - jeder Hersteller kocht da sein eigenes Süppchen ...

Übrigens sind genau die (m.E.) beiden Hauptschwachpunkte von PB meine grössten Probleme:
- Threadsicherheit von Strings (so ein Auswerte-Tool kommt einfach nicht ohne Threads aus und man arbeitet ja hier auch in den Threads sehr viel mit String-Auswertungen und -analysen). Hey Fred, ich will jeweils mindestens einen separaten Stringpointer pro Thread!!! :mrgreen:
- keine guten (fertigen) http-Zugriffsroutinen, die unabhängig von Win-Apis sind (vielleicht ist ja das von nightsky genau das, was ich schon lange gesucht habe). Win-Api ist für Tools deswegen eigentlich Schrott, weil das abhängig vom "global work offline state" von Windows ist. Aber das führt hier jetzt wohl zu weit ...

Gruß,
Martin

PS: für alle, bei denen das funktioniert, wie es Falko beschrieben hat, bei denen sollte auch mein FreewareRouter Monitor komplett laufen.
Ich würde mich durchaus freuen, wenn sich das auch mal Besitzer von nicht-DrayTek-Routern anschauen würden.
Bei der Erstellung der Konfigurationsdateien kann ich dann behilflich sein.
Bedingung ist zur Zeit aber noch, dass man eben in das Webinterface direkt per "Passwortübergabe im Link" (wie es auch falko im zitierten Thread mit dem IE beschrieben hat) kommt.
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

Hab meinen alten Code nochmal ausprobiert. Da jetzt durch die neuen IE-Updates
folgende Möglichkeit einen Fehler auslöst muß noch ein Registrieeintrag gemacht werden um diese Sperre zu entfernen. Dann geht es wieder wie sonst. Einwahl mit Purebasic zum Router (bei mir Billion) geht hiermit.

Code: Alles auswählen

If URLDownloadToFile_(0,"http://Benutzername:Passwort@192.168.1.254/stat1.htm",TempFile,0,0) = #S_OK 
Die Seite main.htm und nur das Passwort , die RouterIP und die Byteposition des ersten Zeichens vor der INet-IP müssen angepasst werden. Die main.htm müßte sich doch im Quelltext einsehen und speichern lassen und mit einem HexEd. könnte man die Byteposition für die Konstante "#IPpos" ermitteln.


Und hier die beiden Reg-Dateien um die Möglichkeit sich per http im Webinterface wieder einwählen zu können von PC-WELT. bitte jeweils eine
eigene Reg-Datei erstellen oder evt. das ganze in PB anpassen.

Für "ie_urlworkaround.reg"
REGEDIT4

Code: Alles auswählen

; Workaround für das URL-Passwort-Problem im IE
; Weitere Infos finden Sie auf PC-WELT unter http://www.pcwelt.de/news/viren_bugs/37567/
; Die Änderung gilt für alle Anwender. Soll sie nur für den aktiven Anwender gelten, dann
; ersetzen Sie überall HKEY_LOCAL_MACHINE durch HKEY_CURRENT_USER
; PC-WELT, 9.2.2004

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_HTTP_USERNAME_PASSWORD_DISABLE]
"iexplore.exe"=dword:00000000
"explorer.exe"=dword:00000000
Für "ie_urlworkaround_uninstall.reg"

Code: Alles auswählen

REGEDIT4

; Deinstallation des Registry-Workarounds für das URL-Passwort-Problem im IE
; Weitere Infos finden Sie auf PC-WELT unter http://www.pcwelt.de/news/viren_bugs/37567/
; PC-WELT, 9.2.2004

[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl]

[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_HTTP_USERNAME_PASSWORD_DISABLE]
"iexplore.exe"=dword:00000000
"explorer.exe"=dword:00000000
Schaue mir auch mal per Gelegenheit eure Progs zu verschiedenen Routern an. :allright:

Gruß Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Antworten