Autor Beitrag
Blamaster
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 164



BeitragVerfasst: Mo 26.07.10 15:01 
Hi,

ich nutze momentan 2 Indy Instanzen eine in einer dll die Andere im Hauptprogramm.

Die Indy in der dll bereitet den Downloadlink vor. Liest ihn aus usw.

Die im Hauptprogramm soll dann nur noch den vorbereiteten Link aus der dll laden.

Problem ist dabei, das der Server von dem geladen werden soll den Download mit der zweiten Indy nicht akzeptiert und eine 'HTTP 1.1/403 forbidden' wirft.

Wenn ich den Link gleich mit der ersten Indy lade funktioniert alles.

Welche Daten muss die Erste der zweiten Indy übergeben damit der Download auch mit dieser klappt ?

Mfg Blamaster
glotzer
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 393
Erhaltene Danke: 49

Win 7
Lazarus
BeitragVerfasst: Mo 26.07.10 17:18 
versuche es doch einfach...
Blamaster Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 164



BeitragVerfasst: Mo 26.07.10 17:26 
Hi,

probieren wird schwer wenn man keinerlei Idee hat welche Daten von Relevanz sein können.

Mfg Blamaster
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10184
Erhaltene Danke: 1259

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 26.07.10 18:09 
Moin!

Ich rate mal: die Cookies sind in der zweiten Instanz nicht gesetzt? :nixweiss: Gemeinsamen CookieManager einbinden. :idea:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19341
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 26.07.10 19:48 
Das dürfte bei einer DLL schwierig werden, da aufgrund des unterschiedlichen Speichermanagers das nicht so einfach geht.

Insofern ist es vermutlich am sinnvollsten einmal im Browser zu schauen was da eigentlich übertragen wird usw. (z.B. mit FireBug, HttpFox, ...) und dann gezielt diese Daten mit aus der DLL zu holen.
Blamaster Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 164



BeitragVerfasst: Mo 26.07.10 22:28 
Genauer gesagt geht es um das laden eines Youtube Videos.

Die dll fordert den Link an liest die benötigten Daten aus dem Quellcode und baut daraus den Downloadlink zusammen.

Wenn ich den nun aus dem Programm kopiere und ihn bei Mozilla einfüge wird das Video auch direkt geladen. Wenn ich den Link jetzt allerdings vom Hauptprogramm mit indy lade, kommt der Zugriffsfehler.

Was für einen Referer hat man eigentlich bei den indys garkeinen oder ?

Mfg Blamaster
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19341
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 26.07.10 22:36 
Du hast auch keinen Referrer, wenn du den Link im Browser direkt einfügst.

Du musst eben mal vergleichen was im Browser übertragen wird und bei dir nicht. :nixweiss:
Dafür gibt es neben den oben genannten Tools auch z.B. WireShark.
Verdächtige gibt es einige, sei es der UserAgent oder andere Daten.
Blamaster Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 164



BeitragVerfasst: Di 27.07.10 01:24 
Ich habe ebend mal gesnifft. Folgendes kam dabei raus.

Link den mir das Plugin zusammensetzt worauf danach das Get der indy angewendet wird:

ausblenden Delphi-Quelltext
1:
http://v9.lscache7.c.youtube.com/videoplayback?ip=89.0.0.0&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Calgorithm%2Cburst%2Cfactor&fexp=900037&algorithm=throttle-factor&itag=5&ipbits=8&burst=40&sver=3&expire=1280210400&key=yt1&signature=71189EB2031AF583713BAAE33CE325AFA3E23B8C.1E22CFBB20CE84098DEC5550DD82358AEE61E3D7&factor=1.25&id=2e48e58c13532ece					


Log von meinem Programm:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
GET /videoplayback?ip=0.0.0.0&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Calgorithm%2Cburst%2Cfactor%2Coc%3AU0dXRVJMTl9FSkNNN19KRlJF&fexp=900064&algorithm=throttle-factor&itag=5&ipbits=0&burst=40&sver=3&expire=1280210400&key=yt1&signature=D183CC1DD8772587BA93A287B714DC978B85421F.61102AEC10F463FC0971E4D98932A1B1A6B199A4&factor=1.25&id=2e48e58c13532ece HTTP/1.1
Host: v9.lscache7.c.youtube.com
Accept: text/html, */*
Accept-Encoding: identity
User-Agent: Mozilla/3.0 (compatible; Indy Library)
Authorization: Basic Og==

HTTP/1.1 403 Forbidden
Content-Type: text/plain
Connection: close
X-Content-Type-Options: nosniff
Date: Mon, 26 Jul 2010 23:14:31 GMT
Server: gvs 1.0


Und der Log wenn ich obigen Link direkt in den Browser einfüge:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
GET /videoplayback?ip=89.0.0.0&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Calgorithm%2Cburst%2Cfactor&fexp=900064&algorithm=throttle-factor&itag=5&ipbits=8&burst=40&sver=3&expire=1280210400&key=yt1&signature=71189EB2031AF583713BAAE33CE325AFA3E23B8C.1E22CFBB20CE84098DEC5550DD82358AEE61E3D7&factor=1.25&id=2e48e58c13532ece HTTP/1.1
Host: v9.lscache7.c.youtube.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive

HTTP/1.1 200 OK
Last-Modified: Thu, 10 Jun 2010 13:32:51 GMT
Content-Type: video/x-flv
Content-Length: 5456366
Connection: close
Expires: Tue, 27 Jul 2010 05:55:00 GMT
Cache-Control: private,max-age=24009
X-Content-Type-Options: nosniff
Date: Mon, 26 Jul 2010 23:14:51 GMT
Server: gvs 1.0


Wodurch kann das zustande kommen ?

Mfg Blamaster


Edit.

Hat sich erledigt. Der Fehler lag bei mir habe ausversehen eine URL Decode Funktion zweimal auf den Link angewandt :oops:

Danke trotzdem für die Hilfe :)