シルギア

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を正規表現で照合して各項目を推定します。カギは紛らわしいものから先に判定することです。

  1. bot判定を最優先し、Googlebotなどをまず確かめます。
  2. OSはAndroid→iOS→macOSの順。AndroidはLinuxより先に、iPhone/iPadは「like Mac OS X」を含むのでmacOSより先に見ます。逆にするとAndroidをLinux、iPhoneをmacOSと誤認します。
  3. ブラウザはEdge・Opera・Samsungを先に。これらはChromium系でChromeもSafariも名乗るため、先に拾ってからChrome、最後にSafariを見ます。
  4. エンジンはChrome/Edge系ならBlink、iOS上の全ブラウザやmacOS SafariはWebKit、FirefoxはGecko、古いIEはTridentと判定します。
  5. 端末種別は、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やサンプルを読み込み、一行の文字列がどう分解されるかを試してみてください。

「User-Agent解析」を使ってみる →

ほかの記事

CSSアニメーション(@keyframes)入門|作り方と緩急の付け方 CSSカラー名⇔HEX変換の使い方|148色と最近傍色の仕組み cron式の書き方入門|5フィールドと記号を図解で理解する Flexboxの効き方を目で理解|主軸・交差軸から生成CSSまで CSS Grid入門|fr・minmax・gap・整列を実例で解説 色覚シミュレーションの使い方|配色が色弱でどう見えるか確かめる

記事一覧をすべて見る →