# ユーザーエージェント確認

ブラウザがこのページを読み込んだときに送ったUser-Agentヘッダーを、当サイトのサーバーが受け取ったままの形で表示し、要素ごとに分解します。

## 要点

ブラウザはリクエストのたびにUser-Agentヘッダーを送り、ブラウザ名とバージョン、OSを伝えます（RFC 9110、10.1.5節）。Chromium系のブラウザはいまではその大部分を固定していて、たとえばChrome 141は`Chrome/141.0.0.0`と名乗ります。細かな情報は、サイトが要求して初めて送られるUser-Agentクライアントヒントに移りました。クローラー、AIエージェント、スクリプトも同じヘッダーで名乗るので、このページではそれを手がかりに区別しています。

### 調べ方

ヘッダーはua-parser-js 1.0.41でブラウザ、エンジン、OS、デバイス、CPUに分解し、検索エンジンのクローラー、AIクローラーとAIアシスタント、リンクプレビュー用のボット、コマンドラインツール、HTTPライブラリの一覧と照合します。あわせて、JavaScriptが返す値（`navigator.userAgent`）と、HTTPSで開いたChromium系ブラウザでは`navigator.userAgentData`のクライアントヒントも表示し、両者の食い違いを指摘します。

### 例

`Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36`というヘッダーは、Windows 10上のChrome 141.0.0.0（エンジンはBlink）、つまりデスクトップのWebブラウザと解析されます。Windows 11も同じ`Windows NT 10.0`を送るので、両者を区別できるのは`Sec-CH-UA-Platform-Version`のクライアントヒントだけです。

### 制限事項

- どのクライアントも好きなUser-Agentを送れます。結果が示すのはヘッダーが名乗っている内容で、実際に送ってきたソフトウェアではありません。
- 固定された文字列からは、マイナーバージョンと、デスクトップでは正確なOSのバージョンがわかりません。
- クライアントヒントがあるのは、HTTPSのページで、しかもChromium系ブラウザの場合だけです。

### 出典

- [RFC 9110, section 10.1.5: User-Agent](https://www.rfc-editor.org/rfc/rfc9110#section-10.1.5)：ヘッダーの目的と書式。
- [Chromium: User-Agent Reduction](https://www.chromium.org/updates/ua-reduction/)：文字列のどの部分が固定されるか。
- [User-Agent Client Hints (WICG)](https://wicg.github.io/ua-client-hints/)：Sec-CH-UAヘッダーとnavigator.userAgentData。
- [Microsoft Learn: Detect Windows 11 using User-Agent Client Hints](https://learn.microsoft.com/en-us/microsoft-edge/web-platform/how-to-detect-win11)：Windows 11でもWindows NT 10.0のままであること。
- [ua-parser-js 1.0.41](https://github.com/faisalman/ua-parser-js/releases/tag/1.0.41)：このページで使っている解析ライブラリ（MITライセンス）。

## User-Agent文字列とは

ブラウザが送るリクエストには、必ず`User-Agent`ヘッダーが付いています。どのソフトウェアからの要求なのかをサーバーに知らせる1行の文字列です。サイトはこれを見て、ページの適切な版を返したり、ある機能を使っても問題ないかを判断したり、既知のセキュリティ上の欠陥を抱えた古いブラウザを締め出したり、訪問者のブラウザの内訳を数えたりします。検索エンジンやAIのクローラーもこのヘッダーで名乗るため、`robots.txt`を書くときにも「ユーザーエージェント」という言葉が出てきます。

上には、あなたのUser-Agentが届いたとおりに表示され、その下で同じ文字列をブラウザ、レンダリングエンジン、OS、デバイスの種類に分けています。クライアントの分類も行います。ふつうのWebブラウザ、Googlebotのような検索エンジンのクローラー、GPTBotやClaudeBotのようなAIクローラー、ユーザーの代わりにページを取りに来るAIアシスタント、リンクプレビュー用のボット、コマンドラインツール、HTTPライブラリのどれにあたるかです。

## 使い方

1. 確認したいブラウザ、デバイス、自動操作のセッションでこのページを開きます。いちばん上の行が、このリクエストで当サイトのサーバーが受け取った`User-Agent`ヘッダーです。
2. **「ユーザーエージェントをコピー」**を押すと、削ったり打ち直したりしていない正確な文字列をコピーできます。
3. **「ヘッダーから読み取った内容」**で、その文字列から取り出したブラウザ、エンジン、OS、デバイス、CPU、クライアントの種類を確かめます。
4. **「JavaScriptが返す値」**と見比べます。`navigator.userAgent`がヘッダーと一致すればその旨が表示され、違う場合はJavaScript側の値が全文表示されます。クライアントヒントの行が埋まるのは、HTTPSで開いたChromium系ブラウザだけです。
5. **「つじつまは合っている？」**を読みます。ヘッダーとJavaScript、OSとクライアントヒントのプラットフォームを照らし合わせ、自動操作のフラグが立っているかも調べます。

開発者ツールで上書きを試すときは、変更してから再読み込みしてヘッダーを送り直し、どの行が変わり、どの行が本当のブラウザを示したままかを見てください。

## こんなときに

- **不具合を報告する。**コピーした文字列を貼り付ければ、開発者は*「Windowsの最新のChrome」*のようなあいまいな説明ではなく、正確なブラウザ、バージョン、プラットフォームを把握できます。
- **User-Agentの切り替えツールを試す。**拡張機能をオンにして再読み込みします。*「つじつまは合っている？」*でヘッダーとJavaScript、またはクライアントヒントとの食い違いを指摘されたら、サイトからも変装は見破られます。
- **自動操作のブラウザを確認する。**SeleniumやPlaywrightのセッションでこのページを開けば、実際に送っている文字列と、`navigator.webdriver`で自動操作だと名乗っているかどうかがわかります。
- **iPadでパソコン向けの表示になる理由を知る。**iPadOSのSafariは初期設定でデスクトップ用のサイトを要求し、MacのUser-Agentを送るため、解析されるOSはmacOSになります。Safariの設定で*「デスクトップ用Webサイトを表示」*をオフにすると、タブレットの文字列に戻ります。
- **サーバーのルールを書く。**リダイレクト、ファイアウォールのルール、アクセス解析のフィルターでブラウザを判定する前に、対象にしたいブラウザの実際の文字列を集め、作ったパターンをそれに当てて試しましょう。

## User-Agent文字列の読み方

デスクトップ版Chromeの典型的な文字列は次のとおりです。

```
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
```

- `Mozilla/5.0`：最近のブラウザならどれも送る、互換性のための記号です。Firefoxとは関係ありません。
- `(Windows NT 10.0; Win64; x64)`：プラットフォーム、つまりOSとCPUのアーキテクチャです。Windows 11でも`10.0`のままです。
- `AppleWebKit/537.36 (KHTML, like Gecko)`：これも互換性の名残です。ChromeのBlinkエンジンはWebKitから枝分かれし、そのWebKitはKHTMLから枝分かれしました。
- `Chrome/141.0.0.0`：実際のブラウザと、そのメジャーバージョンです。0が並んでいるのは意図的で、Chromeがマイナーバージョンを隠しているためです。
- `Safari/537.36`：これもまた互換性のための記号です。

Firefoxは`Gecko/20100101 Firefox/141.0`を使い、Safariは`Version/18.0 Safari/605.1.15`で終わり、EdgeはChromeの文字列の末尾に`Edg/141.0.0.0`を付け足します。モバイルのブラウザは`Mobile`を加えます。iPhoneのブラウザはAppleのWebKitの上で動いているため（EU以外ではiOSがそれを義務づけています）、ほぼすべてが中身はSafariだと名乗ります。

## クライアントヒント：ユーザーエージェントの後継

Chromium系のブラウザ（Chrome、Edge、Opera、Brave、Samsung Internet）は、従来の文字列の大部分を固定し、詳しい情報を**User-Agentクライアントヒント**に移しました。初期状態で送るのは3つの小さなヘッダー、つまりブランド名とメジャーバージョンを含む`Sec-CH-UA`、`Sec-CH-UA-Mobile`、`Sec-CH-UA-Platform`で、サイトはフルバージョン、CPUのアーキテクチャ、スマホの機種などをさらに要求できます。ページは`navigator.userAgentData`から同じデータを読み取れます。FirefoxとSafariはクライアントヒントを実装していません。クライアントヒントを使えるのはHTTPSのページだけです。

## ユーザーエージェントを変更する

開発者ツールはどのブラウザにも付いていて、テストのためにUser-Agentを上書きできます。拡張機能を使えば常に変えておくこともできます。ほかのデバイスでサイトがどう動くかを確かめるには便利ですが、プライバシーを守る道具としては不向きです。ヘッダーを変えても、`navigator.userAgentData`、TLSハンドシェイク、フォントの一覧、ブラウザがcanvasを描画するやり方は変わらないため、変装がほかのすべてと矛盾してしまいます。上の*「つじつまは合っている？」*の欄では、ボット検出のスクリプトと同じ比較を行っています。ヘッダーとJavaScript、User-Agentとクライアントヒントの比較です。

## スクリプトやツールのユーザーエージェントを確認する

コマンドラインツールやライブラリは、`curl/8.x`、`python-requests/2.x`、`Go-http-client/1.1`のように独自のユーザーエージェントを送ります。多くのサイトは、これらを初期設定でブロックしています。ツールが何を送っているかを正確に知るには、同じマシンから当サイトのエンドポイントにアクセスしてください。

```
curl "iseeu.cc/ua?format=text"
curl iseeu.cc/ua            # 解析結果をJSONで
python -c "import requests; print(requests.get('https://iseeu.cc/ua').json())"
```

AIエージェントは、当サイトの[MCPサーバー](https://iseeu.cc/ja/api/#mcp)にある`parse_ua`ツールを呼び出して、ログで見つけたクローラーの文字列も含め、どんなUser-Agent文字列でも解析できます。

## よくある質問

**ユーザーエージェントとは何ですか？**

あなたに代わってWebにリクエストを送るプログラムのことで、ふつうはブラウザを指します。そのUser-Agentヘッダーは、ブラウザの名前とバージョン、レンダリングエンジン、OSを書き並べた1行の文字列です。

**ユーザーエージェントが、どのブラウザでもMozilla/5.0で始まるのはなぜですか？**

互換性を保つための歴史的な名残です。1990年代、サイトはNetscape（開発コード名がMozilla）により出来のよいページを送っていたため、ほかのブラウザもそのページを受け取ろうと、この先頭部分をまねしました。主要なブラウザはいまもこれを残しています。

**ユーザーエージェントは変更できますか？**

変えられます。開発者ツールや拡張機能を使えば上書きできます。ただし、クライアントヒント、JavaScriptのプロパティ、TLSハンドシェイクは本当のブラウザを示したままなので、書き換えたUser-Agentは簡単に見破られます。

**User-Agentクライアントヒント（User-Agent Client Hints）とは何ですか？**

Chromium系ブラウザに備わった新しい仕組みです。初期状態では短いブランド名とプラットフォームだけを送り、正確なバージョン、アーキテクチャ、デバイスのモデルといった詳細は、サイト側から要求できるようになっています。

**ユーザーエージェントに古いOSのバージョンが出るのはなぜですか？**

フィンガープリントに使われにくくするため、ブラウザが文字列の一部を固定しているからです。ChromeはWindows 11でもWindows NT 10.0と名乗り、macOSのバージョンも固定値にして、マイナーバージョンの数字は0で埋めます。

**curlやスクリプトのユーザーエージェントを確認するには？**

同じマシンやツールから`curl iseeu.cc/ua?format=text`を実行してください。当サイトのサーバーが受け取ったとおりのUser-Agentヘッダーが表示されます。

ユーザーエージェントの解析はパターンにもとづくため、新しいブラウザや珍しいブラウザを誤って判定することがあります。ボットの分類は、クライアントが自分をどう名乗っているかを反映したものです。User-Agentは誰でも自由に送れます。

## iseeu.ccのほかのツール

- [ブラウザ対応機能](https://iseeu.cc/ja/browser-features/): 約60のWebプラットフォーム機能を、いま使っているブラウザで実際に試します。
- [ブラウザフィンガープリント](https://iseeu.cc/ja/browser-fingerprint/): Cookieがなくてもブラウザを見分ける手がかりになる特徴を一覧にします。
- [セキュリティヘッダーチェック](https://iseeu.cc/ja/security-headers/): URLのレスポンスヘッダーを取得し、HSTSやCSPなどを採点します。
- [IPアドレス確認](https://iseeu.cc/ja/): グローバルIP、おおよその地域、プロバイダ、ヘッダー、TLS、リークテストを1ページで確認できます。

[すべてのツールを見る](https://iseeu.cc/ja/tools/)

最終更新：2026-10-11

元のページ：https://iseeu.cc/ja/user-agent/
