AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi gzip-String "entpacken"???
Thema durchsuchen
Ansicht
Themen-Optionen

gzip-String "entpacken"???

Ein Thema von romber · begonnen am 22. Nov 2008 · letzter Beitrag vom 3. Feb 2009
Antwort Antwort
Seite 1 von 2  1 2      
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.166 Beiträge
 
Delphi 10 Seattle Professional
 
#1

gzip-String "entpacken"???

  Alt 22. Nov 2008, 01:30
Hallo!

Mit Hilfe von PCap verfolge ich den Datenstrom einer AJAX-basierten Webseite. Als Ergebnisse dieser Verfolgung erhalte ich Strings, die so aussehen (nur ein Beispiel):

HTTP/1.1 200 OK
Date: Fri, 21 Nov 2008 22:24:18 GMT
Server: Apache
Vary: Accept-Encoding
Content-Encoding: gzip
Keep-Alive: timeout=5, max=68
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/javascript;charset=ISO-8859-1

a
..........
334
..moV......X.`'...;`....I...Y........srr8x;.c.y... ..K.TP....r...$cX{........].............gE%y..._.|.a>/.7.,..!y.S..
V.....i^....`%..x..0M."..s...gE..<...a..0..{=B.... ......'.^.X.z......0.......B..?
.........!....."..`).......&.9...../Kl...U[3LR...y.)..a0.F.........%.1.@.w.M..7..fu.~@.OPoP.. ..R^.Y\V.._'..........%KS..9K%..O.-.F.n..D.P.LN..w.........Rn.]^e3,..=}Y.A...5..N.Hj8D_...@]|..X%.XX..n.r.....e.e....7..F...7.....?.e.YQ.v
.....-T.O.~.. hhz....Cz.....tew..3...y.=...b= ..Y+:..6j\..9~..e.\.*-....O.c...............8.S....p.c.3x.....h.
.3..G....1~...x. 3.=....fz...g?...c.,....M....L...*...4..2..)C.}... ..I......FG@V...^NR..VW,.t..6..*Qu......f..
..
0


wobei das erste Teil Response-Header ist und das zweite Teil die eigentlichen Daten. Aus dem Header kann man sehen, dass die Daten mit gzip gepackt sind. Wie kann ich diese Daten in lesbaren Text "entpacken"?
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#2

Re: gzip-String "entpacken"???

  Alt 22. Nov 2008, 01:32
per Hier im Forum suchengzip solltest du einige Libraries finden, die gzip unterstützen.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.166 Beiträge
 
Delphi 10 Seattle Professional
 
#3

Re: gzip-String "entpacken"???

  Alt 2. Feb 2009, 16:43
Leider habe ich bis jetzt nichts gefunden, womit ich die Daten entpacken kann.
Hat jemand noch Ideen oder vielleicht fertige Funktion?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

Re: gzip-String "entpacken"???

  Alt 2. Feb 2009, 17:01
es kommt drauf an wie der String gepackt wurde ... unter umständen ist da noch ein kleiner Header davor

kann nur grad nicht nachsehn wie groß der sein könnte

notfalls einfach ausprobieren ... etwa so (wenn's sich nicht entpacken läßt, dann erstes Zeichen löschen und nochmals versuchen)
Delphi-Quellcode:
S := .....; // dein string
While not GZipDeflate(S, OutS) do Delete(S, 1, 1);
$2B or not $2B
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.166 Beiträge
 
Delphi 10 Seattle Professional
 
#5

Re: gzip-String "entpacken"???

  Alt 2. Feb 2009, 17:14
Danke für den Tipp!

Wo kommt dieses GZipDeflate her?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

Re: gzip-String "entpacken"???

  Alt 2. Feb 2009, 17:40
keine Ahnung ... ist 'nur 'nen Beispiel

mußt sozusagen deine dir zur Verfügung stehenden Funktionen da einbauen.

Code:
anfang:
  versuche zu entpacken
    geht > springe raus
  1. zeichen löschen
springe zu zum anfang
raus:
was ich noch weiß, daß ich damals in PHP meine Strings per "Deflate" gepackt hatte und es so verschickte
$2B or not $2B
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.166 Beiträge
 
Delphi 10 Seattle Professional
 
#7

Re: gzip-String "entpacken"???

  Alt 2. Feb 2009, 17:47
Zitat von himitsu:
mußt sozusagen deine dir zur Verfügung stehenden Funktionen da einbauen.
Genau das ist das Problem! Die Routine zum Entpacken habe ich nicht! Diese brauche ich. Ich habe einige Funktionen hier gefunden, davom mehrere auf Basis von ZLib, aber irgendiwie konnte ich diese nicht zum Laufen bringen können, weil der Compiler die Funktionen "compressBuf, decompressBuf" nicht finden konnte.
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#8

Re: gzip-String "entpacken"???

  Alt 2. Feb 2009, 19:25
Hi romber,

leider schreibst Du nicht, welche Delphi Version Du nutzt. D2006 hat z.B. zlib 1.1.x und D2009 hat zlib 1.2.3 mit dabei. Einfach zLib in die uses Klause nehmen und nutzen.

Für die Benutzung der zlib Unit einfach mal die Unit öffnen und gucken, welche Funktionen dort in der implementation stehen. Alternative: mal im Internet nach zLibEx suchen. Dieses bietet zlib v1.2.3 auch für ältere Delphi Versionen.

Hinweis: Willst Du die Daten aus Deinem Netzwerk Sniffer (PCab) so verwerten, wie diese oben stehen? Weil dort ja der Zeichenbereich begrenzt ist somit Informationen schon flöten sind (das also mit dem Entpacken des gz nichts wird)...

Gruß Assertor
Frederik
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#9

Re: gzip-String "entpacken"???

  Alt 2. Feb 2009, 19:40
Zitat von romber:
Genau das ist das Problem! Die Routine zum Entpacken habe ich nicht! Diese brauche ich. Ich habe einige Funktionen hier gefunden, davom mehrere auf Basis von ZLib, aber irgendiwie konnte ich diese nicht zum Laufen bringen können, weil der Compiler die Funktionen "compressBuf, decompressBuf" nicht finden konnte. :(
Kannst Du das Teil mit gzip entpacken, wenn Du den Gzip-Teil als Datei speicherst mit Extension .gz?

In meinen zlib-Pascal-Port findest Du die Unit gzIO in zlibw114_2008-09-07.zip, die dann benutzt werden kann. Wenn nicht könnte eventuell ein kleiner Eingriff in den Quellcode weiterhelfen.

Gruß Gammatester
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.166 Beiträge
 
Delphi 10 Seattle Professional
 
#10

Re: gzip-String "entpacken"???

  Alt 2. Feb 2009, 19:42
@Assertor

Danke für die Antwort!
Ich habe Delphi 2009 und ich war mir auch sicher, dass es an der Delphi-Version liegt. Aber vielmehr beschäftigt mich jetzt das hier:

Zitat von Assertor:
Willst Du die Daten aus Deinem Netzwerk Sniffer (PCab) so verwerten, wie diese oben stehen? Weil dort ja der Zeichenbereich begrenzt ist somit Informationen schon flöten sind (das also mit dem Entpacken des gz nichts wird)...
Genau. So wie die Daten oben stehen, so habe ich diese auch. Diese Daten lese ich aus einem Record aus, Datentyp ist AnsiString. Sind diese Daten wirklich nicht vollständig?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:42 Uhr.
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