User-Agent パーサー/ ブラウザ · OS · デバイス
User-Agent 文字列を解析してブラウザ、バージョン、OS、デバイスタイプ、レンダリングエンジンを識別。現在のブラウザの UA を自動入力。
User-Agent
例
このツールは役に立ちましたか?
コード例
JavaScript (Browser)
// Current browser's UA
navigator.userAgent
// Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)...
// Modern: UA Client Hints (Chrome 90+)
const uaData = navigator.userAgentData;
uaData.brands // [{brand:'Chromium',version:'124'},...]
uaData.mobile // false
uaData.platform // 'macOS'
// High-entropy hints (requires user permission)
const hints = await uaData.getHighEntropyValues([
'platformVersion', 'architecture', 'model'
]);
hints.platformVersion // '14.0.0'
hints.architecture // 'arm'Node.js / Express
// npm install ua-parser-js
const UAParser = require('ua-parser-js');
app.get('/api', (req, res) => {
const ua = req.headers['user-agent'];
const parser = new UAParser(ua);
const result = parser.getResult();
// result.browser → { name: 'Chrome', version: '124.0' }
// result.os → { name: 'macOS', version: '14' }
// result.device → { type: 'mobile', model: 'iPhone' }
// result.engine → { name: 'Blink', version: '124.0' }
res.json(result);
});
// Next.js (App Router)
import { headers } from 'next/headers';
const ua = headers().get('user-agent') ?? '';Python
# pip install user-agents from user_agents import parse ua_string = ( 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 ' 'like Mac OS X) AppleWebKit/605.1.15 ' '(KHTML, like Gecko) Version/17.4.1 ' 'Mobile/15E148 Safari/604.1' ) ua = parse(ua_string) ua.browser.family // 'Mobile Safari' ua.browser.version // (17, 4, 1) ua.os.family // 'iOS' ua.os.version // (17, 4) ua.device.family // 'iPhone' ua.is_mobile // True ua.is_bot // False
Go
// go get github.com/mssola/useragent import "github.com/mssola/useragent" ua := useragent.New( "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" + " AppleWebKit/537.36 Chrome/124.0.0.0 Safari/537.36") ua.Mobile() // false ua.Bot() // false name, ver := ua.Browser() // name = "Chrome", ver = "124.0.0.0" ua.OS() // "Windows 10" ua.Platform() // "Windows"
よくある質問
User-Agent とは?
User-Agent(UA)は HTTP リクエストヘッダーのフィールドで、ブラウザやクライアントがサーバーに自身のアイデンティティを伝えるために使用します。サーバーは UA に基づいてデバイス最適化されたコンテンツを返すことができます。
なぜすべてのブラウザが Mozilla を名乗るのか?
歴史的理由。Netscape Navigator が Mozilla/x.x を使用し、IE が同じプレフィックスを採用して Netscape 向けのコンテンツを受信するようになりました。以降、すべてのブラウザがこのパターンを継承しています。
サーバーで User-Agent を取得するには?
User-Agent リクエストヘッダーはすべての HTTP サーバーで利用可能です。Node.js/Express: req.headers['user-agent']。Python Flask: request.headers.get('User-Agent')。Go: r.Header.Get("User-Agent")。
Googlebot の User-Agent は?
Googlebot の UA: Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)。UA は偽装可能なので、本番環境では UA チェックと IP の逆引き DNS 検証を組み合わせることをお勧めします。
User-Agent Client Hints とは?
UA Client Hints(UA-CH)は Chrome が導入した新標準で、レガシー UA 文字列を段階的に置き換え、より構造化されたデバイス情報を提供し、プライバシー漏洩を削減することを目的としています。
User-Agent は偽装可能?
はい、UA は完全にクライアント制御で簡単に変更できます。セキュリティ検証に UA チェックを使用しないでください。モバイル検出やボットフィルタリングは IP 評判や行動パターンなどの他のシグナルと組み合わせる必要があります。