User-Agentの読み方|UA文字列からOS・ブラウザ・端末を見分ける
公開日:2026年9月26日 更新日:2026年9月15日 運営:シルギア(Analyzegear, Inc.) 対象ツール:User-Agent解析
ブラウザはリクエストのたびにUser-Agent(ユーザーエージェント、以下UA)という一行の文字列をサーバーへ送り、「Windowsのパソコンで、Chromeの何番から来ました」という自己紹介を手渡しています。このガイドでは、UAがどんな部品でできているか、OS・ブラウザ・エンジン・端末種別をどう読み分けるかを、User-Agent解析ツールの実際の判定に沿って説明します。
User-Agentとは何か
UAは、ブラウザやアプリがHTTPリクエストの User-Agentヘッダーに載せて送る、自己申告の識別文字列です。サーバーはこれを見て「スマホ向け表示に切り替える」「解析でブラウザ別の割合を集計する」といった判断に使います。JavaScriptからは navigator.userAgent で同じ値を読め、ツールの「自分のUAを読み込む」ボタンはこれを使っています。押さえたいのは、UAがあくまで自己申告で、送信側が自由に書き換えられる点です。この性質が、後で述べる限界の根っこになります。なお判定はすべてブラウザ内で完結し、入力したUAはどこにも送信されません。
UA文字列の構造を分解する
典型的なUAは、複数のトークン(部品)が並んだ形です。たとえばWindowsのChromeは、Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 となります。順に読むと意味が見えます。
- Mozilla/5.0 … ほぼ全ブラウザが名乗る歴史的な接頭辞で、判定には使えません。
- (Windows NT 10.0; …) … 括弧内はプラットフォーム情報。Windows NT 10.0 はWindows 10または11を表します。
- Chrome/119.0.0.0 … ブラウザ名とバージョン。末尾の Safari/537.36 は互換性のための名残です。
やっかいなのは、Chromeなのに末尾はSafari、iPhoneなのに「like Mac OS X」というように、1つのUAに複数の名前が同居することです。この重なりをほどくために、判定には「順序」が要ります。
OS・ブラウザ・エンジン・端末をどう見分けるか
解析ツールはUAを正規表現で照合して各項目を推定します。カギは紛らわしいものから先に判定することです。
- bot判定を最優先し、Googlebotなどをまず確かめます。
- OSはAndroid→iOS→macOSの順。AndroidはLinuxより先に、iPhone/iPadは「like Mac OS X」を含むのでmacOSより先に見ます。逆にするとAndroidをLinux、iPhoneをmacOSと誤認します。
- ブラウザはEdge・Opera・Samsungを先に。これらはChromium系でChromeもSafariも名乗るため、先に拾ってからChrome、最後にSafariを見ます。
- エンジンはChrome/Edge系ならBlink、iOS上の全ブラウザやmacOS SafariはWebKit、FirefoxはGecko、古いIEはTridentと判定します。
- 端末種別は、iPadや「Tablet」表記があればタブレット、Androidで Mobile を含めばスマホ、含まなければタブレット、という経験則で分類します。
代表的なUAの判定例
実際に代表的なUAを入れると、次のように判定されます(いずれも本ツールの実装で確認済み)。
- iPhone Safari(…iPhone OS 17_0 like Mac OS X… Version/17.0 Mobile…)→ iOS 17.0・Safari 17.0・スマートフォン(WebKit)。17_0 のアンダースコアが 17.0 に整形されます。
- Android Chrome(Linux; Android 13; Pixel 7… Chrome/119.0.0.0 Mobile…)→ Android 13・Chrome 119.0.0.0・スマートフォン(Blink)。
- Windows Edge(末尾に Edg/119.0.0.0)→ Windows 10 / 11・Microsoft Edge 119.0.0.0・パソコン。Chromeトークンを含みますが、Edgeを先に見るので誤りません。
- Googlebot(compatible; Googlebot/2.1; …)→ Googlebot(ボット・クローラー)。
同じ Version/16.6 でも、括弧内が iPad なら iPadOS、Macintosh なら macOSと、周囲のトークンで結論が変わる点に注目してください。
主要クローラーの見分け方
クローラー(bot)は、UAに自分の名前と説明ページのURLを含めることが多く、人間のブラウザと違って素直に正体を名乗るので、ログ調査では見分けやすい相手です。ツールが判定できる代表例には、検索エンジン(Googlebot・Bingbot・DuckDuckBot・Applebot)、SNSのリンク展開(facebookexternalhit・Twitterbot・Slackbot・Discordbot)、SEO解析(SemrushBot・AhrefsBot)、AI・データ収集(GPTBot・ClaudeBot・PerplexityBot・CCBot)などがあります。どれにも当たらなくても、UAに bot・crawler・spider などの語が含まれれば「その他のbot」として拾います。ただしクローラーもUAを詐称できるため、なりすまし対策が要る場面では、送信元IPの逆引き・正引き確認などUA以外の裏取りが欠かせません。
UA判定の限界と、これからの向き合い方
判定結果はいつも「その文字列からはこう読み取れる」という参考値にすぎません。理由を整理します。
- 詐称が容易:UAは自由に書き換えられ、開発者ツールで別のOS・ブラウザに簡単になりすませます。アクセス制御・課金・本人確認の根拠には向きません。
- UA-CHによる凍結・簡素化:近年はUser-Agent Client Hints(UA-CH)への移行が進み、Chrome系ではUA内のバージョンやプラットフォーム情報が段階的に凍結・簡素化されています。正確な情報は navigator.userAgentData から構造化データで取得する方式が推奨されます。
- Safariのバージョン固定:macOS Safariは実OSが新しくても、UA上は Mac OS X 10_15_7 のように古い表記で固定されることがあり、番号をそのまま実OSと受け取ると誤ります。
- iPadの誤判定:iPadはデスクトップ版Safariを名乗ることがあり、パソコンと取り違えます。アプリ内WebViewや独自UAも「不明」になりがちです。
まとめると、UAはログ分析やbotの見分けには今も役立ちますが、重要な分岐の唯一の根拠にはしないこと。機能の有無は実際に検出(機能テスト)し、プラットフォーム情報はUA-CHで得る——この使い分けが安全です。まずはこのツールで自分のUAやサンプルを読み込み、一行の文字列がどう分解されるかを試してみてください。