středa 23. července 2008

HTTP_USER_AGENT a detekce prohlížeče

Proceduru, která umí detekovat typ prohlížeče (browseru) a operačního systému z PHP proměnné HTTP_USER_AGENT jsem již jednou zveřejňoval. Tato procedura je založena na rozboru řetězce obsaženém v proměnné $HTTP_USER_AGENT. Výsledkem procedury je naplnění třech globálních proměnných $BName, $BVersion, $BPlatform, které obsahují název prohlížeče, verzi prohlížeče a operační systém na kterém prohlížeč běží.

Využití této procedur je rozličné. Buď potřebujete generovat pro různé prohlížeče rozdílné kusy kódů nebo jen chcete mít k dispozici nějakou menší statistiku.

Nyní Vám přináším nejnovější verzi (4.0) této procedury. Úpravy jsem provedl hlavně v detekci nových verzí FireFoxu. Do této verze se navíc dostali i další změny, které se u mě nahromadili v průběhu doby. Nově byla přidána např. detekce browseru FLOCK (dnes již ve verzi 1.2.4), opravena detekce verze prohlížeče Safari a přidán OS MS Windows Vista i několik dalších OS založených na Linuxovém jádře (Ubuntu, Debian ...). Protože nový iPhon 3G bude zajisté populární, neopomněl jsem ani na detekci OS iPhone. Celkem umí tato procedura rozpoznat již 12 downloaderů, 27 prohlížečů a 36 operačních systémů. Tento výsledek je mimo jiné postaven na datech získaných v posledních dvou letech. Díky poměrně vysoké návštěvnosti některých mých webových projektů jsem nasbíral více jak 30tisíc hlaviček HTTP_USER_AGENT.

Pro ty šťouravější doporučuji zkontrolovat výsledky této procedury nad libovolným zadaným řetězcem z HTTP_USER_AGENT na stránce http://www.provaz.cz/sector02/statistika_test.php.

V současné době tedy umí tato procedura detekovat následující:

Seznam detekovaných downloaderů, crawlerů a robotů:
  • Offline Explorer
  • Web Downloader
  • Mass Downloader
  • Web Copier
  • Ask Jeeves/Teoma
  • Googlebot
  • Nuk
  • Openbot
  • Slurp
  • IA Archiver
  • MSNBot
  • Yammybot
Seznam detekovaných browserů nebo programů umožňujících zobrazovat webové stránky:
  • Amay
  • Camino (www)
  • Epiphany (www)
  • Chimera (www-unix)
  • FireFox (2.0.0.14; 3.0.1;www)
  • Galeon
  • Flock (1.2.4)
  • Maxthon
  • iCab
  • K-Meleon
  • Konqueror
  • Links
  • Lunascape (4.7.3;www)
  • Lotus
  • Lynx (2.8.4)
  • Mosaic
  • Mozilla
  • MSIE
  • Netscape
  • NetCaptor (7.0.2)
  • Opera (7.0)
  • Safari
  • Songbird (0.5)
  • Sylera (2.2.13)
  • SeaMonkey (www)
  • Sleipnir (www)
  • W3M
Seznam detekovaných operačních systémů:
  • SunOS
  • BeOS
  • CentOS
  • Debian Linux
  • Fedora
  • FreeBSD
  • HP-Unix
  • IRIX
  • iPhone OS
  • Mac OS
  • Mandriva
  • NetBSD
  • OpenBSD
  • OSF
  • OS/2
  • Plan9
  • Red Hat
  • SunOS
  • Symbian OS
  • SUSE Linux
  • Ubuntu Linux
  • Unix
  • Linux
  • Windows 3.11
  • Windows XP
  • Windows 3.11
  • Windows 95
  • Windows 98
  • Windows 2000
  • Windows XP
  • Windows Server 2003
  • Windows Vista
  • Windows 7
  • Windows NT
  • Windows ME
  • Windows CE
A jak tedy vypadá zdrojový kód této procedury? Podrobný výpis této procedury najdete na adrese http://www.provaz.cz/sector02/clanky-179.html .

Pokud je tato procedura pro vás přínosná nebo jiným způsobem vám pomohla, budu rád, když mě o tom dáte vědět. A budu samozřejmě rád i za jakékoli náměty nebo připomínky k této proceduře. Pokud najdete lehce detekovatelnou HTTP_USER_AGENT hlavičku, kterou ještě nemám ve svém seznamu, budu rád, pokud ji pošlete. V tomto případě prosím pošlete celý text, který byl obsažen v HTTP_USER_AGENT a připojte samozřejmě i název OS, název prohlížeče a verzi prohlížeče.