改行コードでOSを識別することができるか?

navigator.userAgentを調べることで、もちろんOSは分かりますが、ユーザーエージェントの偽装の可能性を考えて、改行コードを調べることで、OSを判定しようとした場合、どうなるかという話です。改行コードがCRLFならWindowsブラウザで、CRならMacブラウザで、LFならLinuxブラウザと言い切れるのでしょうか?

【誤判定1】Gecko系ブラウザで

FirefoxやNetscape 7.1、Safari(いわゆるGecko系ブラウザ)ではWindows版でもMac版でも改行コードはLFになります。そのため、このJavaScriptでは「Linux」として判定してしまうことになります。

【誤判定2】Operaで

Operaでは、Windows版でもMac版でも改行コードがCRLFになります。そのため、このJavaScriptでは、Mac版OperaやLinux版Operaの場合でも「Windows」として判定していしまうことになります。



【まとめ】各種ブラウザの改行コード


※ 赤字は、想定外の改行コードの場合。
OSブラウザ名textarea内の
改行コード
(JavaScriptで取得)
GET/POSTで
送信時の
URLエンコード
WindowsIE6CRLF%OD%OA
IE7CRLF%OD%OA
IE5.5CRLF%OD%OA
Firefox 1.5.0.7LF%OD%OA
Firefox 1.0.7LF%OD%OA
Netscape 7.1LF%OD%OA
SeaMonkey 1.0.4LF%OD%OA
Sleipnir 2.47
(IE6/IE7エンジン)
CRLF%OD%OA
Sleipnir 2.4.7
(Geckoエンジン)
LF%OD%OA
Lunascape 3.6.1
(IE6/IE7エンジン)
CRLF%OD%OA
Lunascape 3.6.1
(Geckoエンジン)
LF%OD%OA
Opera 9.01CRLF%OD%OA
MacIE 5.2.3CR%OD%OA
IE5.1.7(OS 9.2.2)CR%OD%OA
IE5.0(OS 9.2.2)CR%OD%OA
Safari 2.0.4(Tiger)LF%OD%OA
Safari 1.3.2(Panther)LF%OD%OA
Firefox 1.5.0.7LF%OD%OA
Netscape 7.1LF%OD%OA
Netscape 7.02(OS 9.2.2)LF%OD%OA
SeaMonkey 1.0.4LF%OD%OA
Camino 1.0.3LF%OD%OA
Opera 9.01CRLF%OD%OA
iCab 3.03CR%OD%OA
LinuxFirefox 1.5.0.6LF%OD%OA
SeaMonkey 1.0.3LF%OD%OA
Opera 9.01CRLF%OD%OA
Konqueror 3.3.1LF%OD%OA


このページは、「ブラウザと改行コード(Mac用ブラウザの改行コードはCRか?)」を検証するために作成されたページです。