57725


chrome  
firefox  
edge  
など各ブラウザの UserAgent からOSを判定することは可能でしょうか


CC BY-SA 4.0
2019-08-31T02:13:51.193
57723
2019-08-31T05:04:23.253
2019-08-31T05:04:23.253
3060
3925
question
javascript html browser
ブラウザのOSの種類を判定する方法


変更出来たりするので確実では無いようですが、以下の様な記事があり、出来るようです。

[【JavaScript】ユーザーエージェントの取得と変更](https://qiita.com/yukibe/items/dd79539ec942c10f2a31)  
[UserAgentからOS/ブラウザなどの調べかたのまとめ](https://qiita.com/nightyknite/items/b2590a69f2e0135756dc)

> Windows  
>  WindowsのバージョンはWindows NT 6.1の様なWindows NT系のバージョンで表示される。
>
> macOS  
>  「Mac OS X」＋OSのバージョンで判定できる。プロセッサのIntel と
> PowerPC(PPC)の区別も出来るが、今現在PowerPCはほとんど残っていないと思うのであまり意味なし。
>
> Linux  
>  64bitの場合「x86_64」が32bitの場合「i686」、x86_64 環境の i686 Linux デスクトップの場合は、「i686 on
> x86_64」が入る。  
>  Androidの場合も「Linux」文字列が入るので、「x86_64」、「i686」の有無で判定するか「Android」を除くの条件がいる？

他色々とあるので参照してください。

* * *

またライブラリがあるようです。

[ブラウザからデバイスに、OSまで！UA判定に便利なライブラリ「UAParser.js」](https://liginc.co.jp/421738)

* * *

それからUserAgentではなくWeb
APIのnavigator(navigatorID?)のプロパティでもわかるようですが、仕様上は「このプロパティが正確な値を返すことを期待しないで下さい。」とあります。

[JavaScriptでOSやブラウザの情報を取得する](https://javascript.programmer-reference.com/js-
os-browser-info/)  
[NavigatorID.platform - Web API |
MDN](https://developer.mozilla.org/ja/docs/Web/API/NavigatorID/platform)  
実装状況の表ではSamsung Internet以外は「あり」になっています。

[Navigator - Web API |
MDN](https://developer.mozilla.org/ja/docs/Web/API/Navigator)

> NavigatorID.platform 読取専用  
>  現在のブラウザーのプラットフォームを表す文字列を返します。このプロパティが正確な値を返すことを期待しないで下さい。


CC BY-SA 4.0
2019-08-31T03:46:29.933
57725
2019-08-31T03:46:29.933
26370
57723
answer