あなたのステッカー
ツールをここにピン留めできます。このブラウザに保存されます。
ツールをピン留めすると、そのステッカーがここに並びます。
ブラウザまたはクライアント
レンダリングエンジン
OS
デバイスの種類
CPU アーキテクチャ(文字列に含まれる場合)
このブラウザが自身について報告する情報
これらの値は上の文字列ではなく、今使っているブラウザから読み取ったものです。このページの外には送信されません。
このツールについて
ユーザーエージェント文字列とは
ほぼすべての HTTP リクエストには、クライアントが自分の名前を名乗る User-Agent ヘッダーが付いています。ブラウザは何十年にもわたり、競合ブラウザ向けに作られたサイトでも正しく表示されるよう、互いの名前をこの文字列に書き加えてきました。Chrome の文字列が Mozilla/5.0 で始まり、AppleWebKit、KHTML, like Gecko、Safari を含んでいるのも、Edge や Opera が Chrome の文字列の末尾に Edg/ や OPR/ を付けて送信しているのもそのためです。
そのため、パーサーは最も具体的なトークンから順に、決まった順序で判定する必要があります。このツールはまず bot と HTTP ライブラリを調べ、次に独自のトークンを付けるブラウザを調べ、最後に Chrome と Safari を判定します。この 2 つのトークンは、ほかの多くのブラウザも含めているためです。
Chromium がほとんどを固定した理由
この文字列はすべてのリクエストで各サーバーに送信され、その詳細はユーザーのフィンガープリンティングに利用されていました。そこで Chrome は文字列を簡略化し、ほかの Chromium 系ブラウザもそれに続きました。現在、バージョンは 131.0.0.0 のように送信され、正しいのはメジャー番号だけです。プラットフォーム部分も、実際のシステムに関係なく Windows NT 10.0; Win64; x64 や Android 10; K のような固定値になっています。
詳細が必要なサイトは、User-Agent Client Hints で要求する必要があります。リクエストヘッダーの Sec-CH-UA と、JavaScript の navigator.userAgentData です。結果の下の表には、使用中のブラウザが提供している場合にその値を表示します。
機能検出を優先する
この文字列は一部が固定され、ほかのブラウザを装っており、クライアントが自由に書き換えることもできるため、どのコードを実行するかを決める手段としては不向きです。代わりに機能そのものを検出してください。JavaScript なら 'share' in navigator、CSS なら @supports を使います。こうすれば、聞いたこともないブラウザや、まだ存在しないバージョンでも正しく判定できます。
それでも、統計を取る場合、ログでクローラーと人間を見分ける場合、特定のブラウザバージョンのバグを回避する場合には、文字列を読み取るのは妥当な方法です。
よくある質問
Chrome のバージョンが .0.0.0 で終わるのはなぜですか?
Chrome をはじめとする Chromium 系ブラウザは、フィンガープリンティングを抑えるためにユーザーエージェント文字列を簡略化しています。送信されるのはメジャーバージョンだけで、マイナー、ビルド、パッチの番号はゼロに置き換えられます。完全なバージョンは User-Agent Client Hints で取得できます。
ユーザーエージェント文字列で Brave と Chrome を見分けられますか?
いいえ。Brave は意図的に Chrome と同じ文字列を送信するため、パーサーには Chromium 系ブラウザだということしかわかりません。独自のトークンを付けないブラウザはすべて同様です。
Mac が macOS 10.15.7 と報告されるのはなぜですか?
Safari、Chrome、Firefox は文字列内の macOS のバージョンを 10.15 で更新しなくなったため、それ以降の macOS でも同じ番号が報告されます。また、Apple シリコン搭載の Mac でも文字列には Intel と書かれます。
ユーザーエージェント文字列は偽装できますか?
はい。クライアントはどんな文字列でも送信でき、多くの bot が一般的なブラウザの文字列を送っています。セキュリティ上の判断の根拠にはしないでください。Googlebot などのクローラーを確認するには、運営元が公開している方法に従って、リクエスト元のアドレスを確認します。
貼り付けた文字列はサーバーに送信されますか?
いいえ。解析はブラウザのタブ内の JavaScript で行われます。このツールがその文字列を含むネットワークリクエストを送ることはありません。