PHPで携帯の各キャリアとPCの判別、振り分けをする

PHPで、ユーザーエージェントを取得して各キャリアとPCに振り分ける方法。
前に、メモ程度で書いたエントリーのPHPについてを詳しくまとめてみた。


■キャリア、PC判別

<?php
$agent = $_SERVER['HTTP_USER_AGENT'];
if(preg_match("/^DoCoMo/i", $agent)){
   echo "あなたは、DoCoMoからアクセスしています。<br />";
   echo "ユーザーエージェント:$agent";
}else if(preg_match("/^(J¥-PHONE|Vodafone|MOT¥-[CV]|SoftBank)/i", $agent)){
   echo "あなたは、SoftBankからアクセスしています。<br />";
   echo "ユーザーエージェント:$agent";
}else if(preg_match("/^KDDI¥-/i", $agent) || preg_match("/UP¥.Browser/i", $agent)){
   echo "あなたは、auからアクセスしています。<br />";
   echo "ユーザーエージェント:$agent";
}else{
   echo "あなたは、PCからアクセスしています。<br />";
   echo "ユーザーエージェント:$agent";
}
?>


□ DoCoMo の場合
"DoCoMo" が文字列として含まれているので、これを条件として振り分ける。


□ SoftBank の場合
"J-PHONE"、"Vodafone"、"SoftBank" が文字列として含まれているので、これを条件として振り分ける。Motorolaの702MOと702sMOには、"J-PHONE" や "Vodafone"といった文字列は含まれていないため "MOT-C" と "MOT-V" で判別する。


□ au の場合
WAP2.0 (XHTML)は、「KDDI-」という文字列で振り分けができる。
WAP1.0 (HDML)は、「UP.Browser」という文字列が含まれている場合をauとして振り分ける。しかし、SoftBank(Vodafone)でも、UP.Browserを使っている機種があるので、if文でau よりもSoftBankを先に記述する必要がある。DoCoMoでもUP.Browserを使っている機種があるらしいが、確認できず・・・。


SoftBankでUP.Browserを使っている機種(2007年8月現在)
802N、703SH、703SHf、703N、802SH、902SH、902T、903SH、804SH


□ PC の場合
上記のいずれにも該当しない場合をPCとして振り分ける。
実際は、PC以外にもWILLCOMやゲーム機、PDA、フルブラウザもここに振り分けられることになる。




■各キャリア、PC判別後にページを飛ばす場合(振り分け)

<?php
$agent = $_SERVER['HTTP_USER_AGENT'];
if(preg_match("/^DoCoMo/i", $agent)){
   header("Location: http://サイトURL/docomo/index.html");
   exit;
}else if(preg_match("/^(J¥-PHONE|Vodafone|MOT¥-[CV]|SoftBank)/i", $agent)){
   header("Location: http://サイトURL/softbank/index.html");
   exit;
}else if(preg_match("/^KDDI¥-/i", $agent) || preg_match("/UP¥.Browser/i", $agent)){
   header("Location: http://サイトURL/au/index.html");
   exit;
}else{
   header("Location: http://サイトURL/pc/index.html");
   exit;
}
?>


これを、アクセスしたときに自動で振り分けたいHTMLのファイル内(拡張子はもちろんphpですが)で、一番上に記述しておけばOK。



■各キャリアのユーザーエージェント情報


DoCoMo ユーザーエージェント情報(公式)
http://www.nttdocomo.co.jp/service/imode/make/content/spec/useragent/


au ユーザーエージェント情報(公式)
http://www.au.kddi.com/ezfactory/tec/spec/4_4.html


SoftBank ユーザーエージェント情報(公式)
http://developers.softbankmobile.co.jp/dp/tech_svc/info/useragent.php


■参考サイト


Perlで作るCGI講座 - 環境変数 HTTP_USER_AGENT - futomi's CGI Cafe -
http://www.futomi.com/lecture/env_var/http_user_agent.html


ユーザーエージェント携帯判別
http://www.mt312.com/column/004.php


ユーザーエージェント(UA)について
http://mobile.np-os.net/index.php?p=ua

人気blogランキング ブログランキング・にほんブログ村へ Blog Entry ランキングへ投票 ブログ王 ブログランキング くつろぐ
最近流行のブログのように、簡単にオンラインショップが構築できちゃう、
Color Me Shop! pro】は、オンラインショップ構築の容易さだけではなく、
商品管理や決済も簡単にできちゃう初心者でも安心の機能を標準装備!
無料提供のショップブログとも連携できて月額875円〜。この機会に是非!

トラックバック

このエントリーのトラックバックURL:

コメント (4)

キタザワ:

キャリア振り分けについてですが、通常のTHMLのサイトでは、使えないのでしょうか?
PHPサイトでなければ使えませんか?
初心者で申し訳ありません、教えて下さい。

com6:

キタザワ様

コメントありがとうございます。
こちらに記載していますのは、PHPでのキャリア振り分けになります。

PHPが使えるサーバで、HTMLファイルの拡張子を.htmlから.phpに変えて頂ければ動きますよ。

また、ご不明な点があればご質問ください。
僕に分かる範囲であれば、お答えいたします。

りょうた:

とても参考になりました。まさに探していたものそのものですよ!!ありがたく使わせていただきます。
自動振り分けを探して入ってきたので、サイトの別ページも今から楽しく見させていただきます。
とても勉強にになりそうです。

com6:

>りょうた様
ありがとうございます。
コメント頂いてから、だいぶ時間が経ってしまい申し訳ありません。

ほとんど自分の備忘録として残していっている情報ですが、
お役に立てたようで僕もうれしいかぎりです。

コメントする