0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ブラウザの環境確認をサクッと効率化!「User-Agent確認・解析ツール」を公開しました

0
Posted at

はじめに

Webの運用保守やアクセス解析、デバッグ作業において、ブラウザやクローラーが送信する「User-Agent(UA)文字列」の確認は日常的に行われます。しかし、自身の正確な環境を手軽に知る手段や、任意のUA文字列を素早く検証できるシンプルなツールが求められていました。

こうした日々の開発作業を効率化するため、個人開発向けWebツール集「SS-Infra総合ポータル」の第3弾として「User-Agent確認・解析ツール」を公開しました。

作ったツール

User-Agent確認・解析ツール
👉 https://ss-infra.net/useragent/

主な機能

  • 現在アクセス中の環境を自動検出: ブラウザ、OS、デバイスの種類を瞬時に判定・表示
  • 任意のUA文字列解析: フォームに任意のUA文字列を入力して内訳を即座に検証
  • シンプルで軽量なUI: スッキリとした見やすい画面で、必要な情報を瞬時に確認可能

技術的なポイント:PHP実装の工夫

実際のPHPコードを交えて、実装時のポイントを3つ紹介します。

1. $_SERVER['HTTP_USER_AGENT'] によるリアルタイム環境取得

アクセス者のUA文字列は、グローバル変数 $_SERVER['HTTP_USER_AGENT'] から安全に取得します。未定義の場合のフォールバックも考慮しています。

// アクセス者のUser-Agentを取得
$current_ua = $_SERVER['HTTP_USER_AGENT'] ?? '';
$input_ua = trim($_POST['ua_string'] ?? $current_ua);

2. 正規表現を用いた簡易パーサーの実装

外部ライブラリに依存せず、軽量かつ高速に判定を行えるよう、主要なキーワードを preg_match でマッチングするカスタム関数を実装しています。

function parse_user_agent($ua)
{
    $result = [
        'browser' => '不明なブラウザ',
        'os'      => '不明なOS',
        'device'  => 'デスクトップ / その他',
        'is_bot'  => false,
    ];

    if (empty($ua)) return $result;

    // OS判定の例
    if (preg_match('/windows nt/i', $ua)) {
        $result['os'] = 'Windows';
    } elseif (preg_match('/iphone|ipad|ipod/i', $ua)) {
        $result['os'] = 'iOS';
        $result['device'] = preg_match('/ipad/i', $ua) ? 'タブレット (iPad)' : 'モバイル (iPhone)';
    }

    // ブラウザ判定の例
    if (preg_match('/edg\/|edge\//i', $ua)) {
        $result['browser'] = 'Microsoft Edge';
    } elseif (preg_match('/chrome\//i', $ua) && !preg_match('/edg\//i', $ua)) {
        $result['browser'] = 'Google Chrome';
    }

    return $result;
}

3. POST値のバリデーションと安全なエスケープ出力

ユーザーがフォームに入力した任意のUA文字列は、trim() で整形した上で動的に解析処理にかけます。また、出力時には htmlspecialchars() を徹底し、クロスサイトスクリプティング(XSS)等のセキュリティリスクをしっかりと防止しています。

おわりに

TailwindCSSを活用したクリーンなUIと、外部依存のないピュアなPHP処理を組み合わせることで、実用的なユーティリティをサクッと構築することができました。

デバッグや検証業務などでUAを手軽に調べたいときは、ぜひ使ってみてください!

👉 User-Agent確認・解析ツールを試してみる

ご意見・改善のご要望などがあれば、ぜひQiitaのコメント欄やフィードバックでお知らせいただけると嬉しいです!

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?