IE が送出する HTTP User-Agent ヘッダで Windows のバージョンを見分けるには (Part 2)

IE の User-Agent に、Windows のバージョンが含まれていることは、おととい確認した。

www.toyfish.blog

では、その文字列は、実際の各バージョンとどう対応づいているのか。ぐぐってみると、およそこんな感じのようだ (UNIX 版や Mac 版、PocketIE は除く)。

OS Product Name       OS in User-Agent
--------------------  -------------------------
Windows 3.1           Windows 3.1
Windows 95            Windows 95
Windows 98/98SE       Windows 98
Windows Me            Windows 98; Win 9x 4.90
Windows NT 3.x        Windows NT
Windows NT 4.0        Windows NT 4.0
Windows 2000          Windows NT 5.0
Windows XP            Windows NT 5.1
Windows XP SP2        Windows NT 5.1; SV1
Windows Server 2003   Windows NT 5.2

ちなみに ASP の場合、User-Agent 文字列から OS やブラウザ機能を判断するためのコンポーネントとして、Browser Capabilities (MSWC.BrowserType) が提供されている。Microsoft サポート技術情報および MSDN には、以下のような情報がある。

167820 - [HOWTO] スクリプトからブラウザのバージョンを調べる方法
http://support.microsoft.com/kb/167820/JA/
Browser Capabilities コンポーネント
http://www.microsoft.com/windows2000/ja/server/iis/htm/asp/comp3xx0.htm

このコンポーネントは、browscap.ini というファイルに格納された情報を取り出すものなので、新しいブラウザや OS が登場したら、更新する必要がある。

Browscap.ini ファイル
http://www.microsoft.com/windows2000/ja/server/iis/htm/asp/comp1g11.htm
826905 - HOW TO: Add Internet Explorer 5.5 Information to the Browscap.ini File
http://support.microsoft.com/kb/826905/en-us
311227 - [HOW TO] Internet Explorer 6 の情報を Browscap.ini ファイルに追加する
http://support.microsoft.com/default.aspx?scid=kb;ja;311227

ASP.NET では、System.Web.HttpBrowserCapabilities クラスと、ASP.NET 構成ファイルの browserCaps 要素に置き換えられている。

HttpBrowserCapabilities クラス
http://www.microsoft.com/japan/msdn/library/ja/cpref/html/frlrfSystemWebHttpBrowserCapabilitiesClassTopic.asp
<browserCaps> 要素
http://www.microsoft.com/japan/msdn/library/ja/cpgenref/html/gngrfbrowsercapssection.asp