User-Agent文字列を解析する方法
User-Agent文字列を入力すると、対応するブラウザー、OS、レンダリングエンジン、デバイスの分類を確認できます。入力を省略した場合は分類されず、エラー表示と例が返ります。
User-Agent文字列を解析する目的
User-Agent文字列は、ブラウザーやOSなどを識別するために送信されるテキストです。このツールに文字列を入力すると、対応するパターンに基づいてブラウザー名、ブラウザーのバージョン、OS、OSのバージョン、レンダリングエンジン、デバイスを分類できます。モバイル判定とボット判定も結果に含まれます。
アクセス解析の確認、ブラウザー条件による表示検証、サポート対応で受け取ったUser-Agentの読み解きなどに利用できます。ただし、判定は入力された文字列と対応する照合ルールに基づくもので、文字列に含まれない情報まで補うものではありません。
解析の手順
- 解析したいUser-Agent文字列を用意します。ブラウザーや端末から取得したテキストを、そのままコピーしてください。
- ツールの入力欄に文字列を貼り付けます。入力は任意ですが、省略した場合は分類されず、エラー表示とUser-Agentの例が返ります。
- 解析を実行し、表示された分類結果を確認します。ブラウザー名とバージョン、OSとOSのバージョン、レンダリングエンジン、デバイス種別を順に確認すると、読み落としを防げます。
- モバイルまたはボットの判定も確認します。デバイスがMobileのときだけモバイル判定が真になり、デバイスがBot/Crawlerのときだけボット判定が真になります。
- 判定できない項目はUnknownとして扱います。入力を変更して再確認する場合は、不要な編集を加えず、元の文字列との違いを記録しておくと結果を比較しやすくなります。
結果の読み方と注意点
Chrome/を含む認識可能な文字列はChrome、Firefox/を含む認識可能な文字列はFirefoxとして分類され、対応するドット区切りのバージョンがあれば抽出されます。Windows、macOS、Android、iOS、Linuxは対応するパターンから分類され、条件に合うバージョン表記は正規化されることがあります。AppleWebKitやGeckoの対応パターンがある場合は、レンダリングエンジンも分類されます。
ブラウザー判定には順序があります。たとえばChromeの判定ではChromium、Edg/、OPR/を除外し、SafariはChromeを含まない場合に判定されます。そのため、複数の識別子を含む文字列では、表示された分類をそのまま確認してください。デバイスも同様に、Mobile、iPad、Tablet、bot・crawler・spiderなどの文字が後段の判定に影響します。
対応パターンに該当しない非空の入力では、ブラウザー、OS、エンジンなどがUnknownになる場合があります。Unknownは入力に対応情報がないことを示す分類であり、実際のブラウザーや端末の存在を否定するものではありません。
使用例
Windows上のChromeから取得したUser-Agent文字列を入力し、ブラウザーと端末の分類を確認します。
Chrome/、Windows NT、AppleWebKitを含み、Mobile、bot、crawler、spiderを含まないUser-Agent文字列を入力して解析します。
ブラウザーはChrome、バージョンは入力に含まれるドット区切りの文字列、OSはWindows、エンジンはWebKit、デバイスはDesktopとして表示され、モバイルとボットの判定は偽になります。
制限事項
- 判定は入力文字列に含まれる対応パターンと照合順序に基づきます。対応していない形式や重複する識別子では、Unknownになったり、順序に応じた分類になったりする場合があります。
よくある間違い
- 入力欄を空のまま実行すると、分類結果ではなくエラー表示とUser-Agentの例が返ります。解析したい文字列を省略せずに貼り付けてから、もう一度実行してください。
よくある質問
User-Agentを入力しなくても解析できますか?
入力は任意ですが、省略すると分類は実行されず、エラー表示とUser-Agentの例が返ります。解析には対象の文字列を入力してください。
ChromeのUser-Agentは判定できますか?
Chrome/を含み、Chromium、Edg/、OPR/に該当しない認識可能な文字列はChromeとして分類されます。対応するドット区切りのバージョンがあれば抽出されます。
結果がUnknownになるのはなぜですか?
対応する照合パターンがない項目はUnknownになります。これはその項目を分類できなかったことを示すもので、実際のブラウザーや端末が存在しないという意味ではありません。