Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Infos über Browser usw. in CGI auslesen (https://www.delphipraxis.net/180550-infos-ueber-browser-usw-cgi-auslesen.html)

Jumpy 28. Mai 2014 10:43

Infos über Browser usw. in CGI auslesen
 
Hallo,

kann ich in einer Delphi-CGI aus dem ankommenden Request Informationen über den Browser und das Betriebssystem von dem die Anfrage ausgeht bekommen?

Ich kann Informationen dazu in den Logs des IIS sehen (wenn ich mich auch noch nicht schlau gemacht habe, wie man sowas interpretiert). Beispiel:
Code:
/images/stripe.jpg - 304 Mozilla/5.0+(compatible;+MSIE+10.0;+Windows+NT+6.1;+WOW64;+Trident/6.0)
Aber ich hätte so Infos, bzw. alles was ich so kriegen kann, gerne für mein eigenes Logging innerhalb der CGI. Hintergrund ist es so Problemen auf den Grund zu gehen ala:

- Kunde hat gestern angerufen, kam nicht auf's Webportal.
- Oder: Er ist immer rausgeflogen.
- Oder: konnte keine PDFs hochladen.
- Oder mein Favorit: Kunde bekommt immer so eine Fehlermeldung.

DeddyH 28. Mai 2014 10:48

AW: Infos über Browser usw. in CGI auslesen
 
Kannst Du die "UserAgent"-Variable auslesen?

mkinzler 28. Mai 2014 11:08

AW: Infos über Browser usw. in CGI auslesen
 
Bei CGI kannst Du das nicht direkt. Du musst in IIS schauen, ob du den User Agent für diese CGI als Umgebungsvariable bereitstellen kannst

himitsu 28. Mai 2014 11:11

AW: Infos über Browser usw. in CGI auslesen
 
Im Log steht ja auch nur, was aus dem HTTP-Header ausgelesen wurde.

Und das CGI sollte als Input auch den kompletten HTTP-Header bekommen.

UserAgent:
Also ja, das sollte man da auslesen können. (falls er übertragen wurde)
Und nein, was der Browser zurückgibt muß nicht immer stimmen, auch wenn da meistens die Browser-Engine, das OS und einige Addons mit erwähnt werden,
aber im Zuge des anonymen Surfens verschleiern/verfälschen immer mehr Browser/Firewalls diese Angaben.

Einige Webseiten lesen das über JavaScript, AJAX, Flash und wer weis über was sonst noch aus und übertragen es dann zum Webserver, bzw. hängen es an einen POST mit an.

Jumpy 28. Mai 2014 11:25

AW: Infos über Browser usw. in CGI auslesen
 
UserAgent ist das Stichwort, nachdem ich mal suchen werde, ob D6 mir da was bereitstellt. Oder ist das ein Header den ich so finden kann. Mal sehen.


Zitat:

Zitat von himitsu (Beitrag 1260589)
Einige Webseiten lesen das über JavaScript, AJAX, Flash und wer weis über was sonst noch aus und übertragen es dann zum Webserver, bzw. hängen es an einen POST mit an.

Das klingt auf jeden Fall nach einer guten Idee für einen Plan B.

himitsu 28. Mai 2014 12:02

AW: Infos über Browser usw. in CGI auslesen
 
z.B. für den Firefox gibt es Addons wie das "Live HTTP headers", welche dir anzeigen was alles im Hintergrund passiert.
Damit kann man auch schön die Funktion seines Programms prüfen.

Beim Aufruf der DP-Startseite sendet das mein Browser an den Server (Header, Leerzeile, POST-Daten)
Code:
GET /dp_portal.php HTTP/1.1
Host: www.delphipraxis.net
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://www.delphipraxis.net/180550-infos-ueber-browser-usw-cgi-auslesen.html
Cookie: ***geheim***
Connection: keep-alive

***die Daten***
Und bekommt dann Folgendes als Antwort. (Header, Leerzeile und hier dann z.B. der HTML-Code)
Code:
HTTP/1.1 200 OK
Date: Wed, 28 May 2014 10:51:59 GMT
Server: Apache
Cache-Control: private
Pragma: private
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 8147
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=ISO-8859-1

***die Daten***
CGI bekommt der Request-Header+Daten als Input, zerlegt und verarbeitet Diese und gibt dann die Antwort als Response-Header+Daten über den Output raus.
Im Prinzip ist ein normales CGI-Programm (FastCGI ausgeschlossen) wie ein Konsolenprogramm. (du, bzw. der HTTP-Server schreibt die ankommenden Daten in die Konsole und was das CGI-Programm ausspuckt, wird an den Browser gesendet)

Rein kommen die Daten somit, aber in wie weit und wie dein CGI-Framework diese Daten nun (aufbereitet) bereitstellt, weiß ich jetzt nicht.


Zitat:

wenn ich mich auch noch nicht schlau gemacht habe, wie man sowas interpretiert
Es gibt dafür LogViewer, welche die Daten aufbereiten. Eventuell/Vermutlich gibt es auch Komponenten für Delphi, welche das ebenfalls machen.

mjustin 28. Mai 2014 12:22

AW: Infos über Browser usw. in CGI auslesen
 
Zitat:

Zitat von himitsu (Beitrag 1260595)
Im Prinzip ist ein normales CGI-Programm (FastCGI ausgeschlossen) wie ein Konsolenprogramm. (du, bzw. der HTTP-Server schreibt die ankommenden Daten in die Konsole und was das CGI-Programm ausspuckt, wird an den Browser gesendet)

Bei Selfhtml http://de.selfhtml.org/servercgi/cgi...svariablen.htm kann man es gut nachlesen.

Der HTTP Request Header wird jedoch nicht vollständig an das CGI "Konsolenprogramm" sondern in Form von Umgebungsvariablen bereitgestellt - nicht alle Header-Zeilen sind damit garantiert im CGI Programm abrufbar.

Jumpy 28. Mai 2014 12:55

AW: Infos über Browser usw. in CGI auslesen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also zumindest die Codevervollständigung von D6 hat scheinbar schonmal was von UserAgent gehört.
Ich bau mir jetzt mal eine kleine Testanwendung um zu sehen, was den da so ankommt, sprich ob z.B. der IIS da wirklich was durchreicht usw.

Danke auf jeden Fall mal wieder für das richtige Stichwort :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:19 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