本文へ移動
Develop Tools
← 使い方ガイドへ戻る

User-Agentの見方|ブラウザ・OS・デバイスを判別する方法

アクセスログに長いUser-Agentが残っていても、左から順に読むだけではブラウザを正しく判定できません。実際の文字列、分解結果、ツール結果を対応させて確認します。

User-Agentを互換識別子、OS、エンジン、ブラウザ関連トークンに分けて読む図
User-Agentを互換識別子、OS、エンジン、ブラウザ関連トークンに分けて読む図

結論:識別子の組み合わせと判定順を確認する

BrowserはChrome、OSはmacOS、DeviceはDesktop、EngineはBlinkと読めます。ただしSafariトークンは互換性目的で含まれるため、この例をSafariとは判定しません。UAは環境の候補を絞る情報であり、端末の身元情報ではありません。

解析に使うUser-Agent例

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36
項目解析結果読み方
BrowserChrome 143.0.0.0Chrome/143.0.0.0を使用
OSmacOS 10.15.7MacintoshとMac OS Xを確認
DeviceデスクトップMobileやTablet識別子がない
EngineBlinkChrome製品トークンから推定

User-Agent文字列を分解して読む

User-Agentは左から製品名を一つ選べばよい形式ではありません。互換性維持のためMozilla、AppleWebKit、Chrome、Safariなど複数の名称が並び、後方にある製品固有トークンが判定に重要な場合があります。

識別子この例で分かること注意点
Mozilla/5.0互換性を示す先頭トークンFirefox確定を意味しない
Macintosh / Mac OS XOS候補と表記上のバージョン実際のOS情報が簡略化される場合がある
AppleWebKit/537.36エンジン互換トークンこの一語だけでSafariとは決めない
Chrome/143.0.0.0ブラウザ候補とUA上のバージョンUA Reductionで詳細が固定・縮小される場合がある
Safari/537.36互換性目的のトークンChrome UAにも含まれる

Safariという文字がある、Mozillaから始まる、といった一語だけではブラウザを確定しません。固有性の高い識別子から順に確認します。

HTTPヘッダーとnavigator.userAgentの違い

サーバーログではHTTPリクエストのUser-Agentヘッダーを確認します。ブラウザ上のJavaScriptではnavigator.userAgentから現在のブラウザが公開する文字列を取得できます。通常は近い内容ですが、送信経路、ブラウザ設定、プロキシ、アプリの上書きなどを考慮します。

const ua = navigator.userAgent;
console.log(ua);

User-Agent解析ツールで確認できる範囲

区分対応内容
入力UA文字列の貼り付け、現在のブラウザUA、代表サンプル
主な結果ブラウザとバージョン、OS、端末種別、エンジン、CPUアーキテクチャ、表示コンテキスト
補助判定モバイル、Botらしい識別子、Android/iOS WebView、代表的なアプリ内ブラウザ
Client Hints現在のブラウザUAを読み込んだ場合だけ、対応環境で取得して解析
確定できないこと実端末の所有者、正確な機種、UAを名乗るBotの真正性、すべての独自クライアント

解析結果には情報源、確度、根拠が併記されます。判定できない値は別のOSや端末名で補完せず「不明」「判定不能」として扱います。Client Hintsは貼り付けた第三者UAには適用しません。

  • UA全体を欠けずに貼り付ける
  • Browser・OS・Device・Engineと根拠を別々に確認する
  • 不明値と推定値をログ調査メモにそのまま残す

判定結果を実装・運用へ使うときの注意点

  • Safari、Chrome、Mozillaなど一語の部分一致だけで判定しない
  • OSバージョンや端末モデルが必ず取得できるとは考えない
  • Web APIの対応確認にはFeature Detectionを優先する

User-AgentはHTTPヘッダーであり、curlや開発者ツール、アプリ側の設定などから変更できます。ログ分析や不具合の再現条件を絞る補助情報として使い、認証・認可・本人確認・管理画面の許可をUAだけで決めないでください。

必要以上のClient Hintsや端末情報を収集しないでください。目的を定め、保存期間とアクセス権限を含めてプライバシーへ配慮します。

この記事で確認した公式情報

ブラウザやクローラーの識別子は変更される場合があります。記事制作時点の公式資料を基準にし、古いバージョン例は最新バージョン番号として扱わず、トークン構造を確認する代表例として掲載しています。

資料確認した内容
MDN Navigator.userAgentUA文字列は変更可能で、ブラウザ判定には信頼性上の限界があること
MDN UA sniffing機能対応の判断ではUser-Agent判定よりFeature Detectionを優先すること
Chrome for DevelopersUA ReductionとUser-Agent Client Hintsの目的・取得方法・プライバシー上の注意
Google Search Central / Bing Webmaster Toolsクローラー名を含むUAと、IP・逆引き等による真正性確認を区別すること
OpenAI公式クローラー資料OAI-SearchBot、GPTBot、ChatGPT-Userの用途と公開UA例

具体例:アクセスログのChrome系UAを読む

ログからUser-Agentヘッダー値だけをコピーし、解析ツールへ貼り付けます。結果の値だけでなく、根拠にChrome、Mac OS X、AppleWebKitが使われていることを確認します。

Windows NT 10.0のように複数OS世代で共通化された表記が出た場合は、推測でOS世代を補完せずWindows 10 / 11候補として記録します。

  1. ログからUA部分だけを取り出す
  2. ツールへ貼り付けて解析する
  3. 主要結果と根拠トークンを照合する
  4. 確定できない項目を推定として記録する

ログのIPアドレス、Cookie、認証情報をUser-Agentと一緒に貼り付けないでください。

よくある質問

Safariと書かれていればSafariですか?
いいえ。Chrome系UAにもSafariトークンが含まれます。Chrome、Edg、Versionなど固有性の高い識別子と順序を確認します。
User-Agentから端末の機種名まで分かりますか?
文字列にモデルが含まれる場合は手掛かりになりますが、UA Reductionやブラウザ設定により省略されるため、常に取得できる情報ではありません。

ブラウザで試す

入力内容はブラウザ内で処理されます。元データを残したうえで、結果を確認してから保存・共有してください。

User-Agentを解析する