ユーザーエージェント解析
User-Agent 文字列を読み取り、ブラウザ、エンジン、OS、デバイス種別、ボットかどうかを表示します。空のままにすると自分のブラウザを解析します。
コード例
自分のプロジェクトにコピーして使えます。どの例も言語の標準ライブラリだけを使うので、インストールするものはありません。
const userAgent = 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)'
console.log(/bot|crawl|spider|slurp/i.test(userAgent) ? 'crawler' : 'browser')できること
User-Agent 文字列を読み取り、ブラウザ、描画エンジン、OS、デバイス種別、そしてボットやクローラーかどうかを表示します。入力が空のときは、自分のブラウザを解析します。
使い方
- ログやリクエストヘッダー、バグ報告から User-Agent 文字列を貼り付けます。
- 結果の形式としてテキストか JSON を選びます。
- コピーまたはダウンロードするか、次の入力として使います。
例
Mozilla/5.0 (Windows NT 10.0; Win64; x64) … Chrome/126.0.0.0 Safari/537.36 は、Windows 上の Chrome 126(Blink で描画、デスクトップ)です。Mozilla/5.0 (compatible; Googlebot/2.1; …) はボットで、一致したパターンも表示されます。
知っておくと便利なこと
- 判定には保守されている 2 つのライブラリ、bowser(ブラウザ、エンジン、OS、デバイス種別)と isbot(ボット判定)を使うため、ルールはそれぞれのリリースに追従します。
- デバイス名は文字列に含まれる場合だけ表示されます。Chrome は年々情報を減らしているため、バージョンやデバイスが得られないことがよくあります。
- User-Agent はクライアントが自由に送れるものです。ボット判定は目安であり、保証ではありません。
- ライブラリは、読み取る内容ができた最初のタイミングで読み込まれます。
なぜ unknown と表示されるのですか?
User-Agent 文字列は自由形式のテキストで、ブラウザは年々多くを隠すようになっています。たとえば Chrome はバージョンを固定し、デバイス情報を伏せます。解析結果は文字列に含まれる内容だけなので、見つからない項目は unknown のままです。
よくある質問
正確な機種はわかりますか?
文字列に機種名がある場合のみです。多くの Android 端末や iPhone には含まれますが、デスクトップのブラウザにはほとんど含まれません。表示できる情報がなければデバイス行は省かれます。
ボットかどうかはどう判定しますか?
文字列を、保守されているクローラーのパターン一覧と照合し、一致したパターンを表示します。ボットは好きな User-Agent を名乗れるため、結果は証拠ではなく目安として扱ってください。
このツールは User-Agent をどこかに送信しますか?
いいえ。自分の User-Agent の読み取りも解析もブラウザ内で行い、入力した内容がサーバーに送られることはありません。