Wenn Du was besseres hast, bitte posten. ;)
Hallo Cybaer
Das Script ist inzwischen über 2000 Zeilen lang und war verdammt viel Arbeit. Verzeih mir also bitte wenn ich es hier nicht poste.
Das Prinzip erkläre ich aber gern:
Das Script versucht Anhand 4 verschiedener Verfahren die wichtigsten Infos über den Client zu ermitteln.
Unterstützte Auszeichnungssprachen (Versionen)
Unterstützte Scriptsprachen (Versionen)
Unterstützte Grafikformate (JPG, BMP, PNG, GIF, WBMP)
Displaygösse und Farben
Nutzbare Displaygrösse
....
Als Basis dienen die Angaben im Request-Header.
* Verfahren 1 User Agent Profile:
Ein User Agent Profile ist eine xml-Datei die vom Handyhersteller ins Internet gestellt wird und das Gerät beschreibt. Hier das Siemens S65 als Beispiel http://communication-market.siemens.de/portal/UAProf/UAP.aspx?device=S65&v=50
Der URL für das entsprechende UAProfile findet sich in einem der folgenden Header:
HTTP_PROFILE, HTTP_X_WAP_PROFILE, manchmal auch noch HTTP_X_WAP_REMOVEDPROFILE.
Wenn diese Einträge nichts erbringen gibt es noch die Möglichkeit die letzte Zahl des
HTTP_OPT Eintrages zu ermitteln (den s.g. Namespace z.b. 35)
Dann sollte ein Headereintrag HTTP_35_PROFILE (35 muss die Namespacenummer sein) den URL zum UAProfile enthalten.
Das Verfahren wird unter http://www.developershome.com/wap/detection/detection.asp?page=uaprof beschrieben.
Wenn also ein gültiger URL gefunden wurde muss mein Script nur noch den xml-File downloaden und die gesuchten Werte parsen.
Leider gibt es nicht zu jedem Endgerät eine UAProfile. Daher weiter mit
* Verfahren 2 Porprietäre Headereinträge
Viele Handys schicken "Eigenbau" Hederangaben mit. Einige Beispiele:
HTTP_UA_PIXELS, HTTP_X_UP_DEVCAP_SCREENPIXELS, HTTP_X_JPHONE_DISPLAY, HTTP_UA_COLOR, HTTP_UA_OS usw.
Daraus lässt sich einiges ableiten aber leider nicht alles und daher weiter mit
* Verfahren 3 Wurfl
Das Projekt Wurfl http://wurfl.sourceforge.net/ stellt einen riesigen xml-file zur Verfügung aus dem man nach einem Fallback-Parsingverfahren anhand des HTTP_USER_AGENT sehr viel über das verwendete Engerät erfahren kann. Besondere Stärke ist hier die Angabe über den nutzbaren Displabereich. Aber auch Wurfl kennt nicht alle Geräte und daher weiter mit dem letzten Schritt.
* Verfahren 4 Allgemeine Headeranaben
So kann man z.b. die unterstützten Grafikformate aus dem HTTP_ACCEPT herauslesen.
oder ein Eintrag wie HTTP_USER_AGENT: Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; Smartphone; 176x220; SPV C500; OpVer 4.1.8.1) lässt Schlüsse auf die Displaygrösse zu. Usw.
Wenn das alles durch ist sollte ich für die meisten Endgeräte brauchbare Daten haben.
Mein Posting hier sollte mir helfen die Zuverlässigkeit des Systems zu prüfen und ggf. neue Wege bzw. proprietäre Einträge zu finden. Leider gab es nur einen einzigen Handyrequest auf meine Testseite (Danke an Martin Hölter!) so dass ich derzeit zwar von einer 100%igen Auflösungsquote sprechen kann. Allerdings eben auf einer winzigen Basis von weniger als 10 Endgeräten.
l.g. Karl :-)´