Requests eines Browsers auffangen

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
cyan
Beiträge: 24
Registriert: 22.09.2006 16:43
Kontaktdaten:

Requests eines Browsers auffangen

Beitrag von cyan »

Hi Leute, der ein oder andere wir das Firefox Plugin "Live HTTP Headers" kennen, was neben Headers, auch den restlichen "Browser-Verkehr" aufzeichnet...

Screenshot:
Bild

fällt einem spontan eine lösung ein, wie man das in PB (oder einer anderen Programmiersprache) realisieren kann?
Headers empfangen ist ja noch recht easy, aber den weiteren verkehr... wichtig ist mit vorallem das ganze #request# zeug ;)

hab schon das englische und deutsche Forum durchgeforstet, verschiedene Libs zum WebGadget, HTTP etc, aber irgendwie will sich mir daraus nichts erschließen =)

Bin für jeden schnipsel Quellcode, Links, Tipps etc dankbar :)


[EDIT]
Naja, am besten ich schildere mal kurz, was ich eigtl vorhab (und schreib es für die neuen leser auch mal in den eingangspost ^^)...

so seiten wie youtube etc benutzen ja ein flash-steuerlement (der player) um eine bestimmte *.flv datei (das video ansich) zu laden...
der request an die *.flv datei steht dann bei "Live HTTP Headers" bei den #request#-Einträgen... von daher bräuchte man die nur noch auslesen, nach einem Link suchen, der auf eine *.flv verweist, und man kann das video runterladen...

(ein link, der das gut beschreibt: http://www.gugelproductions.de/blog/200 ... chern.html)
Zuletzt geändert von cyan am 06.07.2007 16:01, insgesamt 1-mal geändert.
-PureBasic 4.0-
-StudienZwang: JAVA-
Benutzeravatar
PureLust
Beiträge: 1145
Registriert: 21.07.2005 00:02
Computerausstattung: Hab aktuell im Grunde nur noch 'nen Lenovo Yoga 2 Pro im Einsatz.
Wohnort: am schönen Niederrhein

Beitrag von PureLust »

Soetwa "innerhalb" einer Browsers zu realisieren (eben wie im FireFox) dürfte nicht das große Problem sein.

Sowas von "aussen" per PB zu machen aber wohl schon etwas schieriger.
Momentan fällt mir da nur die Möglichkeit eines Proxys ein - also ein Proxy in PB, über den dann eben der gesamte Verkehr von und zum Browser läuft und durch den Du diese Dinge dann halt protokollieren kannst.
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
Benutzeravatar
cyan
Beiträge: 24
Registriert: 22.09.2006 16:43
Kontaktdaten:

Beitrag von cyan »

nene, so kompliziert will ich das ja gar nicht machen (also, dass ein programm von außen den firefox verkehr aufzeichnet)...

hätte mir da eher eine Lösung für das WebGadget vorgestellt ;)
-PureBasic 4.0-
-StudienZwang: JAVA-
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

PureLust hat geschrieben:Soetwa "innerhalb" einer Browsers zu realisieren (eben wie im FireFox) dürfte nicht das große Problem sein.
Cyan hat geschrieben:nene, so kompliziert will ich das ja gar nicht machen (also, dass ein programm von außen den firefox verkehr aufzeichnet)...

hätte mir da eher eine Lösung für das WebGadget vorgestellt Wink
Gut, dann musst du eben ein Programm schreiben, welches von außen des IE-Verkehr mitschneidet ;) Das Webgadget ist mW nur der InternetExplorer ohne Menubar und co.

Von daher verändert sich die Prtoblematik dadurch nicht. Anderes Ansatz: Du baust dir selber einen "Clienten",sprichst den Server "manuell" an, gibst die Requests aus, und speicherst alles, was du empfangen hast in einer .html_Datei. Und diese gibst du dann dem Webgadet zu fressen.

Gr33tz
Tafkadasom2k5
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Benutzeravatar
cyan
Beiträge: 24
Registriert: 22.09.2006 16:43
Kontaktdaten:

Beitrag von cyan »

Tafkadasom2k5 hat geschrieben:Gut, dann musst du eben ein Programm schreiben, welches von außen des IE-Verkehr mitschneidet ;) Das Webgadget ist mW nur der InternetExplorer ohne Menubar und co.
I know...
aber vllt gibts ja eine möglichkeit generell über tricks, wie benötigt, auf das WebGadget zuzugreifen... Freak hat ja schonmal eindrucksvoll bewiesen, dass man mim WebGadget einiges machen kann (http://www.purebasic.fr/english/viewtop ... hlight=web)
Tafkadasom2k5 hat geschrieben: Von daher verändert sich die Prtoblematik dadurch nicht. Anderes Ansatz: Du baust dir selber einen "Clienten",sprichst den Server "manuell" an, gibst die Requests aus, und speicherst alles, was du empfangen hast in einer .html_Datei. Und diese gibst du dann dem Webgadet zu fressen.
Das Problem, wenn ich das mit den PB-Network befehlen mach, ist, dass ich nach schicken meines Headers, dann "nur" den quelltext der angesprochenen Seite kriege... Ich will ja aber dann auch noch den restlichen Verkehr, den der Browser mim Server hat, wie oben im Screenshot... und das nachzusimulieren wäre sicherlich einiges an aufwand... =D
-PureBasic 4.0-
-StudienZwang: JAVA-
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

Ohne zu Programmieren kann ich da einfach mal "Tunnelblick" von h4x0r empfehlen. Schmeiß mal die Suche an, die sollte das, was du willst können.
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Benutzeravatar
PureLust
Beiträge: 1145
Registriert: 21.07.2005 00:02
Computerausstattung: Hab aktuell im Grunde nur noch 'nen Lenovo Yoga 2 Pro im Einsatz.
Wohnort: am schönen Niederrhein

Beitrag von PureLust »

@cyan:

Ich habe Dich jetzt so verstanden dass Du an den #request# interessiert bist um sie auszuwerten.
Brauchst Du das nur so für Dich oder wolltest Du das weitergeben?
Denn wenn Du es nur für Dich selber brauchst, so könntest Du ja einfach das Plugin benutzten, das Fenster bei Bedarf hiden und per PB den Inhalt des entsprechenden ListIconGadgets des Plugins auslesen.
Das wäre dann vermutlich die einfachste Lösung.
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
Benutzeravatar
cyan
Beiträge: 24
Registriert: 22.09.2006 16:43
Kontaktdaten:

Beitrag von cyan »

Naja, am besten ich schildere mal kurz, was ich eigtl vorhab (und schreib es für die neuen leser auch mal in den eingangspost ^^)...

so seiten wie youtube etc benutzen ja ein flash-steuerlement (der player) um eine bestimmte *.flv datei (das video ansich) zu laden...
der request an die *.flv datei steht dann bei "Live HTTP Headers" bei den #request#-Einträgen... von daher bräuchte man die nur noch auslesen, nach einem Link suchen, der auf eine *.flv verweist, und man kann das video runterladen...

(ein link, der das gut beschreibt: http://www.gugelproductions.de/blog/200 ... chern.html)

damit hätte man ein geschickten weg, um für virtuell jeden so videoanbieter die videos runterzuladen, anstatt für jeden einzelnen etwaige parse-routinen etc zu schreiben...

und wenn sowas möglich wäre, dann würd ich das schon verbreiten wollen, deswegen fällt die option flach einfach das fenster von "Live HTTP headers" auszulesen... wäre ja auch irgendwie einfach gemogelt ^^

@Tafkadasom2k5
Tunnelblick kannt ich schon... aber genau bei der Sache (Videos von Videoseiten) will er nicht, und disconnected den client immer =/
-PureBasic 4.0-
-StudienZwang: JAVA-
Benutzeravatar
PureLust
Beiträge: 1145
Registriert: 21.07.2005 00:02
Computerausstattung: Hab aktuell im Grunde nur noch 'nen Lenovo Yoga 2 Pro im Einsatz.
Wohnort: am schönen Niederrhein

Beitrag von PureLust »

Naja, für den Zweck sollte es mit dem Webgadget dann wohl doch gehen.

Ich hab mich zwar noch nicht näher damit auseinander gesetzt, aber ich vermute doch mal schwer, dass man der HTML-Code der aktuell im WebGadget angezeigten Seite auslesen kann.

Wenn also der Name der angeforderten *.flv im HTML-Code steht, brauchst Du ja nur über das Webgadget die YouTube-Seiten anzuzeigen (kannst Dir dazu ja 'nen kleinen Mini-Browser basteln), den aktuellen HTML-Code des WebGadgets zu untersuchen und dann den Namen der *.flv herausfiltern.
(Vorausgesetzt, der Name der *.flv steht überhaupt im HTML-Quellcode. :roll: )

[Edit]: Aber mal ganz abgesehen vom Bedürfnis das selber zu proggen - eine Möglichkeit die Videos von YouTube etc. herunter zu laden gibt es ja schön länger und ist online verfügbar.
Dazu brauchst Du nur den Link des gewünschten Videos auf YouTube etc. zu kopieren und in die Maske der Seite einzufügen. Als Ergebnis bekommst Du dann einen Link um das Video herunterzuladen.
Die genaue URL weiss ich momentan leider nicht und hab sie auch nicht hier auf diesem PC - müsste dann bei Bedarf also mal nachschauen.
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
Benutzeravatar
cyan
Beiträge: 24
Registriert: 22.09.2006 16:43
Kontaktdaten:

Beitrag von cyan »

joa, natürlich gibts schon möglichkeiten youtube videos und videos anderer anbieter runterzuladen, und natürlich wäre das auslesen des quelltexts leichter...

ABER: zB findest du im quelltext von youtube keine *.flv datei, sondern man muss verschiedene video-IDs zamwürfeln, um da einen DL-Link erstellen zukönnen... und bei jeder video seite muss man sich was anderes überlegen, weil jeder das irgendwie anders macht, und die besagten seiten, wo man einfach den video-link eingibt, und die dir einen DL-Link geben, funktionieren nur für bestimmte anbieter... wenn ich jetzt zB ein video von einem nicht gelisteten Anbieter will, steh ich halt blöd da =)

Wenn man einfach die Browser Requests auslesen könnte, wären diese Probleme einfach dahin
-PureBasic 4.0-
-StudienZwang: JAVA-
Antworten