UAParser.js
UAParser.jsはデバイスやOS、ブラウザなどユーザーエージェント情報を検出し、読みやすい形式に変換する JavaScriptライブラリです。MITライセンスの元、オープンソースとしてソースコードが公開されています。
以下のようなUA情報が表示されているのは頻繁に見ると思いますが、
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36
UAParser.jsでは不要なデータをフィルタリングし、意味のあるデータのみを抽出、更に以下のようなJSONライクな構造化されたフォーマットで表示してくれる、というものになります。
{ "ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36", "browser": { "name": "Brave", "version": "117.0.0.0", "major": "117" }, "cpu": { "architecture": "amd64" }, "device": {}, "engine": { "name": "Blink", "version": "117.0.0.0" }, "os": { "name": "Windows", "version": "10" }
}
ブラウザ内で使用する事を想定しており、多くの検出範囲をカバーしつつも非依存且つ軽量となっています。
また、拡張機能がサポートあれており、現在UAParser.jsが提供していないもの(例:bot、特定のアプリ等)を検出したい場合は、正規表現のリストを渡して、UAParser.jsの内部正規表現を拡張することも可能だそうです。このようなカスタマイズはドキュメントにも詳しく書かれているのでご利用の際はご確認下さい。
サーバーサイドでもクライアントサイドでも使えますし、jsDelivrやcdn.jsなどのCDNも用意されています。