HTTP・リクエストの調査

User-Agent解析

一行に一つのUAを入力。判定できた項目と不明な項目を、元の文字列と照合できます。

User-Agent解析

User-Agent入力

UAはブラウザ内で処理し、入力を送信・保存しません。

解析結果

解析ルールを読み込み中…

解析オプション

一行に一つのUA・最大500件・UAごとに500文字・入力512KiB。

文字列のルール判定です。不明はデスクトップを意味せず、バージョンは凍結されている場合があります。

解析器:ua-parser-js 1.0.41・同梱ルール:1.0.41

解析ルールを読み込み中…

問い合わせのUAにChromeとSafariが両方含まれていても、ブラウザが二つ動いているわけではありません。User-Agent解析では互換性のための表記を含む文字列をルールに照らし、ブラウザ名と描画エンジンを分けて確認します。

アクセスログから少数のユーザーエージェントを抜き出して調べる場面を想定しています。重複する行も順番を保ち、不明な端末を勝手にデスクトップへ分類しません。まずはEdgeの例で、文字列と判定結果の関係を確かめてください。

User-Agent解析で確認できること

分かった情報と分からない情報を分ける

User-Agent解析は十一の項目を個別に表示します。ブラウザ判定ができても端末種別は不明のままになることがあります。デバイス判定の空欄を見逃さず、再現テストの環境を決める前に原文を読み返せます。

一本の入力がブラウザ、エンジン、OS、端末、CPUのカードに分かれ、分からない端末項目は空欄になっている。

一括処理でも元の行をたどれる

各レコードに元の行番号と原文、実際に解析したUAを残します。空行は別に数え、同じUAが複数回現れても削除しません。未知のクライアントも結果に残るため、入力件数と照合しながら確認できます。

複数の入力行が対応する結果カードにつながり、空行は飛ばされ、未知の行には空欄が残されている。

ログの手掛かりを保つ使い方

01

UAの部分だけを用意する

UA単体のほか、User-Agent:で始まる一行のヘッダーも受け付けます。接頭辞の大文字と小文字は区別しません。周囲の空白は解析時に取り除きますが、ログ全体からの抽出やJSONの引用符・エスケープの展開は行いません。

02

更新のタイミングを選ぶ

自動解析は編集が止まってから350ms後に実行します。オフにしたら解析ボタンかCtrl/Cmd+Enterを使います。入力を変えると古い結果の書き出しが無効になり、表示形式を切り替えるだけでは再計算されません。

03

置き換えと書き出しの範囲を確認する

現在のブラウザ、サンプル、クリアは、置き換える件数と内容のプレビューを出します。適用後は一度取り消して入力と結果を戻せます。追加表示は50件ずつですが、JSONのコピーと保存は常に全件が対象です。

レコードに残る情報

アプリ名とエンジン名を混同しない

ブラウザの名前、申告された完全なバージョン、メジャーバージョンを分けて表示します。描画エンジンとOSにも独立した項目があります。EdgeのUAにChromeやSafariという語が含まれていても、それぞれ別の役割で扱います。

端末情報は項目ごとに判定

種別、メーカー、モデル、CPUアーキテクチャは個別の情報です。mobileと判定されても具体的な機種が分かるとは限りません。欠けた値はJSONではnullになり、unknownFieldsに項目名が残るので後から抽出できます。

原文を変更しない正規化

rawには元の行全体、uaにはヘッダー接頭辞と周囲の空白を除いた値、lineには1から始まる行番号が入ります。解析用の値を整えても入力欄は書き換えません。出力だけを受け取った人も変換の内容を確認できます。

同じ文字列を同じルールで読む

使用するのはua-parser-js 1.0.41と、その版に同梱されたルールです。タッチ機能やBraveの環境検出を追加せず、現在のブラウザから取得したUAも同じ経路で解析します。過去のログへ今の端末情報が混ざるのを防ぎます。

文字列だけでは分からないこと

利用者やクローラーの身元は確認できない
UAはクライアントが自由に申告できる文字列です。真人判定、ボット分類、クローラーの真正性確認は行いません。一般的なブラウザ名が得られても、スクリプトによる通信である可能性は残ります。機能の有無は実環境で確認してください。
凍結された値を復元しない
Windows NT 10.0だけではWindows 10と11を区別できず、デスクトップ表示のiPadはMacintoshを名乗る場合があります。省略されたバージョンや端末モデルを補完しません。種別が返らない場合もデスクトップとは表示せず、不明として残します。
上限を超えたら全体を停止
空行を除いて500件、入力全体はUTF-8で512KiBまでです。正規化後のUAは一つにつきUTF-16コード単位で500まで受け付けます。上限超過や制御文字を検出した場合は行と列を示し、途中までの結果は書き出せません。
一行ずつのテキスト専用
ファイルの取り込み、URL取得、HTTPリクエストの再送、Client Hintsの取得、ログ全体からの自動抽出はありません。引用符とエスケープはそのまま読み、空行以外を自動削除しません。JSON出力に対応し、並べ替えや集計は別の作業として扱います。

User-Agent解析のよくある質問

解析の精度はどのくらいですか?

固定されたルールによる推定です。珍しいクライアントや偽装されたUAでは誤判定があり得ます。また、ルールが正しく読んでも申告値が凍結されている場合があります。原文を照合し、実際の動作確認と組み合わせてください。

UAはサーバーへ送信されますか?

解析用のコードを読み込んだ後、処理はブラウザ内で完結します。入力履歴の保存やURLへの書き込みはありません。ただし書き出すJSONには原文も含まれるため、共有前に内容を確認してください。

Client Hintsとの違いは何ですか?

UAは一つの文字列で、Client Hintsは別のヘッダーやAPIによる構造化情報です。このページは貼り付けたUAだけを扱い、現在の端末から追加情報を取得しません。別の端末のログに自分の環境が混ざらないようにするためです。

iOSのChromeにSafariの表記があるのはなぜですか?

UAには互換性の表記とエンジンの表記が混在します。Chrome固有のCriOSなどがあれば、その情報をルールが参照できます。AppleWebKitやSafariという語だけでアプリを決めず、文字列全体を入力してください。

ボットはどのように検出しますか?

このページはボット検出を提供していません。Googlebotと名乗る文字列も未検証のデータとして扱い、ブラウザ項目が不明になることがあります。クローラーの出所の確認には、UA以外の証拠が必要です。

判定が合わないUAがありましたか?

次のクライアント情報を確認する

User-Agent解析で少数のサンプルを調べ、不明な項目を原文と照合してから、ルールの版を含むレポートを書き出しましょう。