ユーザーエージェントパーサー

ユーザーエージェントパーサーツールを使用して、詳細なブラウザ、デバイス、OS情報を抽出します。

2件中5件の評価
ユーザーエージェントパーサー

ユーザーエージェントパーサーは、ユーザーエージェント文字列を読み取り、ブラウザ、OS、デバイスの種類を返す無料ツールです。

ユーザーエージェント文字列から何が分かりますか?

ユーザーエージェント文字列とは、HTTPのUser-Agentフィールドに設定される値です。Webブラウザの場合、通常は製品名、バージョン番号、OSを示すトークン、デバイスを判別する手掛かりが含まれます。コマンドラインクライアント、クローラー、フィードリーダー、アプリ内ブラウザもユーザーエージェント文字列を送信することがあります。

その形式は、見た目ほど単純ではありません。ブラウザは他のブラウザに関連する互換性トークンを含むことが多いため、最初に見つかった製品名だけで判定すると誤った結果になる可能性があります。たとえば、Chromiumベースのブラウザには、Chrome関連とSafari関連のトークンが両方含まれるのが一般的です。パーサーは値を単なる一覧として扱うのではなく、トークンの組み合わせと順序を調べます。

また、ユーザーエージェントの情報はクライアントによる自己申告です。クライアント側で変更や偽装が可能であり、ブラウザによっては公開するバージョン情報やデバイス情報を減らしています。そのため、解析結果は分類やデバッグには役立ちますが、デバイスの身元を証明するものではありません。

ユーザーエージェントを解析するには?

ヘッダーの値全体をユーザーエージェント欄に貼り付け、ツールを実行してください。結果として、ブラウザ、OS、デバイスタイプの3項目が返されます。

  1. HTTPリクエスト、アクセスログ、またはブラウザの開発者ツールから、User-Agentの後にある値をコピーします。
  2. 元の空白、括弧、セミコロン、スラッシュ、バージョン番号は残してください。これらは文字列内の製品情報やコメントを区切る役割を持ちます。
  3. 値を送信し、返された分類をリクエストの状況と照らし合わせます。
  4. 自分用のデバッグ記録には、解析結果と一緒に元の文字列も残してください。分類結果だけでは、有用なバージョン情報や互換性トークンが見えなくなることがあります。
digily.link のユーザーエージェントパーサーツールと入力フォーム

解析はサーバー上で実行されます。ユーザーエージェント文字列はHTTPS経由でサーバーに送信され、保存されません。それでも、ログからコピーした内容を送信する前に、無関係なクエリパラメータ、セッション識別子、内部ホスト名が含まれていないか確認してください。

解析結果はどう読めばよいですか?

各項目は、クライアントが送信したトークンから推定された分類です。個別に検証済みのハードウェア情報やソフトウェア情報ではありません。

  • ブラウザは、文字列から識別されたブラウザまたはクライアントの系統を示します。埋め込みWebビューやChromium派生ブラウザは多くのトークンを共有するため、区別しにくい場合があります。
  • OSは、Windows NT、Android、iPhone OS、Mac OS X、Linuxなどのマーカーが示すプラットフォームを返します。互換レイヤーや変更されたユーザーエージェントでは、判定が曖昧になることがあります。
  • デバイスタイプは、デバイスとプラットフォームのマーカーから推定し、クライアントを大まかな形状カテゴリに分類します。正確なハードウェアモデルではなく、実用上の分類として扱ってください。

これらの結果項目は、構文検証レポートではありません。不正な形式、省略された形式、または未知のユーザーエージェントでは、有用な分類に必要な情報が不足することがあります。ただし、末尾のカンマや引用符のないキーといったJSONエラーのように、共通して使えるエラー一覧はありません。実際の文字列はクライアントごとに異なり、古い互換性構文も残されることが多いため、ユーザーエージェントの解析は主にヒューリスティックな判定に基づきます。

空の値には分類できる情報がありません。非常に長い値には、拡張情報、アプリケーション識別子、重複した製品トークンが含まれることがあります。また、数値は通常、対応する製品トークンと一緒に見た場合にのみ意味を持ちます。独自クライアントの文字列にはアクセント記号付き文字や非ラテン文字が現れることもありますが、それだけでブラウザ、OS、デバイスを特定できるわけではありません。

ユーザーエージェントパーサーツールが生成した結果の例

解析例

入力 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36

通常、この文字列はWindows上のChromeで、デスクトップデバイスとして分類されます。Safariトークンは互換性のために含まれているので、それだけを理由にSafariと判定すべきではありません。

入力 Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Mobile/15E148 Safari/604.1

これはiOS上のSafariとモバイルデバイスを示します。"like Mac OS X"は互換性情報の一部であり、デバイスの判定ではiPhoneとMobileのマーカーがより強い手掛かりになります。

URLのクエリパラメータ内から取得したユーザーエージェントは、パーセントエンコードされている場合があります。URLパーサーでパラメータを抽出してデコードしてから、得られたユーザーエージェント値を解析してください。

ユーザーエージェント解析が役立つ場合と、適さない場合は?

見慣れないリクエストの内容を読みやすく確認したい場合や、公開前に分類ロジックを検証したい場合に役立ちます。代表的な用途として、Apacheまたはnginxのアクセスログ調査、特定ブラウザでの表示不具合の確認、埋め込みアプリからの通信の調査、アクセス解析プラットフォームから出力した生データの確認などがあります。

別のシステムからブラウザ、OS、デバイスがすでに構造化フィールドとして提供されているなら、通常は改めて解析する必要はありません。元のヘッダーを転送または保存するだけのサービスでも、解析する利点はほとんどありません。送信者は文字列を偽装できるため、認証、不正検知、アクセス制御の唯一の判断材料にはしないでください。

レスポンシブレイアウトでは、サーバー側でデバイスを推測するよりも、CSSメディアクエリや機能検出の方が一般に信頼できます。特定のブラウザ機能への対応を決めつけるためではなく、診断やレポート作成に必要な情報を得る目的でユーザーエージェントを解析してください。

よくある質問

リクエストがボットから送られたか判定できますか?

結果には、ボット専用の分類項目はありません。ユーザーエージェントで自身を明確に示すクローラーもありますが、ブラウザを装ったり、有用な情報を省略したりするものもあります。必要に応じて、リクエスト頻度のパターン、公開されているクローラーのIP確認方法、リクエストの挙動から自動アクセスかどうかを確認してください。

EdgeのユーザーエージェントにChromeやSafariが含まれるのはなぜですか?

現在のEdgeはChromiumベースであり、ユーザーエージェントを調べるサイトとの互換性に必要なトークンを含んでいます。パーサーは、リクエストを一般的なChromeやSafariとして扱う前に、より具体的なEdgeトークンを探す必要があります。トークンの順序と具体性が重要です。

デバイスの種類を使ってモバイル利用者をリダイレクトできますか?

判定の手掛かりにはできますが、強制的なリダイレクトでは、タブレット、デスクトップモードのブラウザ、変更されたユーザーエージェントを誤分類する可能性があります。レスポンシブ対応のページを優先し、モバイル専用ページを分けざるを得ない場合は、利用者が別のバージョンを選べるようにしてください。

ブラウザのClient Hintsがあれば、ユーザーエージェント解析は不要ですか?

ブラウザとサーバーの両方が対応していれば、Client Hintsから構造化されたブラウザ情報やプラットフォーム情報を取得できます。ただし、すべてのリクエストやクライアントに含まれるわけではありません。古いブラウザ、クローラー、既存のアクセスログを扱うシステムでは、引き続きユーザーエージェント解析が必要になる場合があります。保存するのは作業に必要なユーザーエージェントの分類情報だけにし、適用されるプライバシー上の義務にも配慮してください。

人気のツール