Výhybky pro web

Pokud vytváříte WWW stránky, jistě chcete vědět, jaký prohlížeč používá váš návštěvník.
Pokud vytváříte WWW stránky, jistě chcete vědět, jaký prohlížeč používá váš návštěvník. Používáte-li Microsoft Internet Information Server, existuje několik snadných způsobů, jak to zjistit a využít toho.

Browser Capabilities
Přímo v IIS je vestavěn objekt Browser Capabilities, pomocí kterého můžete zjistit informace o prohlížeči a jeho schopnostech (například zda zvládá Javu, ActiveX a podobně). Má však i několik nevýhod, o kterých se zmíním později. Jeho použití je snadné - pomocí <%Set BC = Server.CreateObject("MSWC.BrowserType")%> vytvoříte objekt, prostřednictvím jehož vlastností zjišťujete schopnosti uživatelova prohlížeče (například. <%If BC.ActiveX Then%>). Bližší detaily najdete v nápovědě IIS. Pokud máte na svém počítači nainstalován MS IIS, hledejte na http://localhost/iishelp/iis/htm/asp/comp3xx0.htm.

User-Agent
Výše popsaný objekt využívá toho, že váš prohlížeč s každým svým požadavkem rozesílá i informaci, co je zač. Tato informace je obsažena v HTTP hlavičce jménem User-Agent a je jí řetězec obsahující název a verzi prohlížeče a název operačního systému uživatelova stroje. Co o sobě tvrdí váš prohlížeč, to můžete zjistit třeba zde. Popsaný objekt tento řetězec analyzuje a porovná s databází jemu známých prohlížečů (je uložena v souboru browscap.ini) a vyhodnotí, co daný prohlížeč podporuje a co ne. Má to však tu závažnou nevýhodu, že tuto databázi je nutno udržovat v aktuálním stavu. Takže například používáte-li nejnovější betavezi MSIE 5 (a nemáte upravený browscap.ini), IIS ji řádně neidentifikuje a hlásí, že používáte nějaký prastarý Netscape. Tomu se lze vyhnout tak, že zmíněný řetězec analyzujete sami a vyvodíte z toho patřičné důsledky.
Práci vám může ušetřit mnou napsaná sbírka funkcí UADET (=UserAgent DETection), která určí název a verzi prohlížeče a použitý operační systém. UADET slouží i k rozlišování uživatelů zde na Živě. Obsahuje tři funkce (pro název prohlížeče, jeho verzi a OS), které vracejí trojpísmenný řetězec identifikující daný parametr a jednu funkci, která vrátí kompletní informaci o konfiguraci jako řetězec vhodný k uložení do databáze:


'UADET = User Agent Detection

Function GetBrowserName()
     If InStr(Request.ServerVariables("HTTP_USER_AGENT"),"MSIE") > 0 Then
          GetBrowserName = "MIE"
     ElseIf InStr(Request.ServerVariables("HTTP_USER_AGENT"),"Mozilla") > 0 Then
          GetBrowserName = "NNC"
     Else
          GetBrowserName = "XXX"
     End If
End Function

Function GetBrowserVersion()
     If InStr(Request.ServerVariables("HTTP_USER_AGENT"),"5.") > 0 Then
          GetBrowserVersion = "500"
     ElseIf InStr(Request.ServerVariables("HTTP_USER_AGENT"),"4.") > 0 Then
          GetBrowserVersion = "400"
     ElseIf InStr(Request.ServerVariables("HTTP_USER_AGENT"),"3.") > 0 Then
          GetBrowserVersion = "300"
     ElseIf InStr(Request.ServerVariables("HTTP_USER_AGENT"),"2.") > 0 Then
          GetBrowserVersion = "200"
     ElseIf InStr(Request.ServerVariables("HTTP_USER_AGENT"),"1.") > 0 Then
          GetBrowserVersion = "100"
     Else
          GetBrowserVersion = "XXX"
     End If
End Function

Function GetOS()
     If InStr(Request.ServerVariables("HTTP_USER_AGENT"),"95") * InStr(Request.ServerVariables("HTTP_USER_AGENT"),"Win") > 0 Then
          GetOS = "W95"
     ElseIf InStr(Request.ServerVariables("HTTP_USER_AGENT"),"98") * InStr(Request.ServerVariables("HTTP_USER_AGENT"),"Win") > 0 Then
          GetOS = "W98"
     ElseIf InStr(Request.ServerVariables("HTTP_USER_AGENT"),"NT") * InStr(Request.ServerVariables("HTTP_USER_AGENT"),"Win") > 0 Then
          GetOS = "WNT"
     ElseIf InStr(Request.ServerVariables("HTTP_USER_AGENT"),"Win") > 0 Then
          GetOS = "W3X"
     ElseIf InStr(Request.ServerVariables("HTTP_USER_AGENT"),"Mac") > 0 Then
          GetOS = "MAC"
     Else
          GetOS = "XXX"
     End If
End Function

Function GetIDString()
     GetIDString = "B:" & GetBrowserName & ";V:" & GetBrowserVersion & ";S:" & GetOS
End Function

Diskuze (2) Další článek: Autodesk kupuje Discreet Logic, ale hodně draho

Témata článku: Software, Prohlížeče, Programování, Browser, Wnt, Elsa, Wine


Určitě si přečtěte

Nejlepší notebooky do 10 000 korun: Co má ještě smysl kupovat. A co ne?

Nejlepší notebooky do 10 000 korun: Co má ještě smysl kupovat. A co ne?

** Notebooky s cenou do deseti tisíc korun jsou plné kompromisů ** Existuje několik modelů dobře použitelných pro nenáročné použití ** Vhodnou alternativou jsou tablety nebo repasované počítače

David Polesný | 94

David Polesný
Jak vybrat notebookNotebooky
Lidl buduje chytrou domácnost, propojí všechno se vším
Lukáš Václavík
LidlChytrá domácnostIoT
Elon Musk podpořil Signal jako náhradu WhatsAppu. Aplikaci okamžitě zavalili uživatelé
Markéta Mikešová
WhatsAppElon MuskFacebook
Dostali jste nový počítač? Tohle s ním udělejte, než ho začnete používat

Dostali jste nový počítač? Tohle s ním udělejte, než ho začnete používat

** Každý nový počítač si zaslouží počáteční péči ** Odinstalujte bloatware a nezapomeňte na vhodné nastavení ** Poradíme, jak se o počítač s Windows 10 postarat

David Polesný, Stanislav Janů | 71

David PolesnýStanislav Janů
PočítačeNotebooky

Aktuální číslo časopisu Computer

Jak prodloužit výdrž notebooku

Velké testy: gamepady a inkoustové tiskárny

Důkladný test Sony Playstation 5