ToolConvoyToolConvoyv2.6
DEV

User-Agent パーサー — User-Agent 文字列を解析してブラウザ・OS・デバイスを検出

User-Agent 文字列を解析し、ブラウザ、バージョン、OS、デバイスタイプ、エンジン(engine)を抽出します。10,000 を超えるパターンに対応し、クライアントサイドで動作します。

● ローカル動作 · タブ内で生成ページ読み込み以降のツールによる通信:0件

User Agent Parser

Parse User-Agent strings — detect browser, OS, device. Works entirely in your browser.

User-Agent ヘッダーは最も古い HTTP ヘッダーのひとつであり、その古さがそのまま現れています。1995 年以降、すべてのブラウザは Mozilla/5.0 で始まる文字列を送信しています。これはすでに存在しないブラウザを名乗る行為であり、由来は初期の Web サーバーが frames を返す前に User-Agent 内の Mozilla を sniffing していたことにあります。Chrome も同様の理由で、実際には使用していない AppleWebKit や KHTML のトークンを追加しています。結果として、このヘッダーはサーバーから得られるクライアント情報としては最も豊富な出典であると同時に、最も信頼性の低いものにもなっています。パーサーの仕事はシグナルを抽出することです。どのブラウザか、どのバージョンか、どの OS か、そしてクライアントが実際の人間なのか検索エンジンのクローラーなのかを判別します。

構造化された出力は 3 つの場面で役立ちます。第一に、アナリティクスです。CSV エクスポートに含まれる生の UA 列は不透明ですが、「Windows 11 上の Chrome 125」はフィルタリング可能なディメンションになります。第二に、ボット検知です。Googlebot のように User-Agent で正直に自らを名乗っているクローラーは、簡易的にパースするだけで Chrome 60 をなりすますボットネットと区別できます。第三に、サポート診断です。ユーザーがバグを報告したとき、UA 文字列(ブラウザコンソールまたはサーバーログから取得したもの)は、彼らのブラウザ・OS・デバイスをやり取りなしに教えてくれます。これらのワークフローはいずれも同じ手順で始まります。文字列を貼り付け、結果を読み取るのです。

最後に引き継ぎ時の補足です。パース結果が既知のクローラーを示していた場合は、IP と reverse DNS ルックアップを照合し、想定された検索エンジンからのものであるかを確認してください。文字列がアナリティクスパイプラインから得られたものである場合は、IP Subnet Calculator と組み合わせてパース結果を地理位置情報にマッピングしてください。セキュリティ上の判断(特定のブラウザバージョンのブロックなど)のために User-Agent パースに依存しているなら、それはやめてください。このヘッダーは簡単に偽装できるため、安全なアプローチはクライアントの identity ではなく capability を確認することです。

広告

使い方

  1. User-Agent 文字列を貼り付ける

    生の User-Agent ヘッダー値を入力欄にドロップします。ブラウザの DevTools(Network タブ > Request Headers)、サーバーのアクセスログ、またはアナリティクスのエクスポートからコピーできます。パーサーはノイズからシグナルを取り出します。

  2. 構造化された解析結果を確認する

    ブラウザ名とバージョン、レンダリングエンジン、OS とバージョン、デバイスカテゴリ(desktop、mobile、tablet、bot)、デバイスメーカーを、信頼度スコア付きの独立したフィールドとして表示します。

  3. アナリティクスやデバッグ用にコピーする

    構造化された JSON をコピーして、アナリティクスフィルター、ボット検知ルール、サポート診断に利用できます。対応する Client Hints が分かれば、解析結果と並べて表示します。

よくある質問

なぜ User-Agent 文字列は意味不明な文字列に見えるのですか?

User-Agent 文字列は歴史的な偶然の産物です。すべてのブラウザが Mozilla を名乗っています(1995 年のブラウザ戦争に由来)。すべてのバージョンには、特定文字列を sniffing するサイトとの互換性のためのトークンが含まれており、結果としてできあがるのは「仕様上は成立している嘘の連鎖」です。パーサーはこの歴史的なノイズを貫いて本質を抽出します。

パーサーはボットやクローラーを検出できますか?

はい。Googlebot、Bingbot、Baiduspider、YandexBot、および 250 を超える既知の crawler パターンにマッチします。各ボット結果にはクローラー名と `bot` というデバイスタイプラベルが付与されます。実際のブラウザ UA をなりすます悪意あるボットや偽装ボットは検知が難しく、誤分類される可能性があります。

ブラウザの `navigator.userAgent` と何が違うのですか?

`navigator.userAgent` は現在のブラウザ自身の生の文字列を返します。このツールは任意の User-Agent 文字列を解析できます。実行中のブラウザに限定されず、ログやアナリティクス、他のユーザーから収集した HTTP ヘッダーからコピーした文字列を貼り付けることができます。

モバイルアプリの User-Agent 文字列も解析できますか?

はい。WebView ベースのアプリ(iOS WKWebView、Android WebView)、React Native の fetch 呼び出し、アプリ内ブラウザビューはいずれも、システムブラウザと同じパターンに従いアプリ固有のサフィックスを付けた User-Agent を含みます。パーサーはシステムブラウザとアプリ名の両方を抽出します。

制限事項

  • User-Agent Client Hints の利用が推奨されますUser-Agent 文字列は Chrome により非推奨とされており、構造化された HTTP ヘッダーである User-Agent Client Hints(UA-CH)への移行が進んでいます。このツールは旧来の UA 文字列を解析しますが、今後は構造化ヒントが主流となります。
  • 偽装された UA は検知できません攻撃者は User-Agent を任意の文字列に設定できます。パーサーは実際のデバイスではなく、文字列が主張する内容を忠実に報告します。高信頼度の識別には TLS フィンガープリンティングやクライアントサイドの検知手法を利用してください。
  • バージョン検出はベストエフォートですブラウザバージョンの解析は、各ベンダーが採用している規約に依存しており、その規約は時間とともに変化します。Chromium のフォークが UA で報告するバージョンと `navigator.appVersion` の値が異なるといったエッジケースでは、軽微な誤差が生じる可能性があります。

プラットフォーム別の注意点

macOS
Safari の User-Agent には Safari のバージョンを示す `Version/17.x` と、WebKit エンジンを示す `AppleWebKit/605.1.15` が含まれます。パーサーはこれらを切り分けてレンダリングエンジンを正確にラベル付けするため、Web Inspector でのデバッグに有用です。
Web
完全にクライアントサイドで動作します。サーバーログから UA 文字列を貼り付ければ、リモートのパースサービスにデータを送信することなく解析結果を得られます。
広告
広告