サイトに訪問したユーザーのユーザーエージェントをPHPで取得する

今回はPHPでユーザーのユーザーエージェントを取得する方法です。

ここで言うユーザーエージェントは、WEBサイトに訪れたユーザーの端末やブラウザの情報のことです。

iPhoneかAndroidかの判定を利用してスマホからかPCからかを判定したり、GoogleやBingのクローラーを判定したりできます。

目次

PHPでユーザーエージェントを取得する方法

PHPでユーザーエージェントを取得するには、スーパーグローバル変数の $_SERVER に含まれる HTTP_USER_AGENT を取得します。

$_SERVER は配列になっているので、上のサンプルコードのようにキーにHTTP_USER_AGENTを指定するだけです。

$ua = $_SERVER['HTTP_USER_AGENT'];

簡単ですね!

ユーザーエージェントを使ってスマホ判定する方法

僕のiPhoneで自分のサイトにアクセスしてみました。

Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/71.0.3578.89 Mobile/15E148 Safari/605.1

ごちゃごちゃと色々書かれていますね。

この中に”iPhone”というキーワードが含まれていればiPhoneからのアクセスと判定します。

Android端末からのアクセスの場合は”Android”が含まれています。

iPadなら”iPad”で、iPodなら”iPod”になります。

 

文字列の中から特定の文字列を検索するにはstrpos()を使います。

≫ strpos()についてはこちらの記事をご覧ください。

 

スマホの判定は以下のようなコードになります。

// ユーザーエージェント取得
$ua = $_SERVER['HTTP_USER_AGENT'];

if (strpos($ua, 'iPhone') !== false || strpos($ua, 'Android') !== false) {
	echo "スマホだよ";
} else {
	echo "スマホじゃないよ";
}

iPadやiPodを含めるかは設計者かお客さんに確認してください。

Googleのクローラー判定

GoogleやBingなどのクローラーかどうかの判定もできます。

GoogleのクローラーのUAはこちらのページで確認できます。

“Googlebot”が含まれてたらGoogleの検索インデックス用クローラーでよさそうです。

Bingの場合は”bingbot”ですね。

 

クローラーのアクセスの場合Googleアナリティクスにもカウントされないので分かりにくいですが、全てのアクセスに対しUAを吐き出すログを作成するとかなりクローラーのアクセスがあります(笑)

GoogleやBingなどならいいですが、ロシアのわけ分からん検索サイトやガチで悪質な中国のクローラーなんかは拒否しちゃってもいいかもれないですね。

まとめ

ユーザーエージェント(UA)は、ユーザーのデバイスやブラウザの情報。

特定のワードが含まれているかどうかで、端末やクローラーなどの判定ができる。

スマホ対策だけでなく、悪質なアクセスのブロックにも役立てれます。

この記事を書いた人

ライターのプロフィールが入ります。このライター情報を入れたくない場合は管理画面の ユーザー > あなたのプロフィールの「プロフィール情報」を未入力にすれば表示されません。逆に「プロフィール情報」を入力することでライター情報を表示できます。

コメント

コメントする

CAPTCHA


目次
閉じる