携帯便利ツールEZ-INFO

携帯端末の振り分け方法(PHP) 

携帯サイトを構築するにあたり、絵文字を全く使用しない場合は問題ありませんが、絵文字や画像を使いコンテンツを閲覧させたい場合端末ごとに表示する内容やページを振り分ける必要があります。

特に、i-mode端末はFOMA902シリーズからはテーブルや背景画像に対応しましたがそれ以前の端末ではほんの一部のCSSに対応しているのみで、注意が必要です。

ここでは、各キャリアごとの振り分け方法について書いてみます。

環境変数HTTP_USER_AGENTの値は訪問者側で変更することが可能な為、必ずそのキャリアの端末か確認するにはリモートホストやIPアドレスを利用した方が良いでしょう。
IPアドレスからリモートホストを逆引きできない場合などもあるようなので携帯電話キャリアの公開しているIPアドレス帯域内であるかを確認する方法が望ましいと思います。携帯振り分け君IIもご覧下さい。

i-mode端末の特徴

  1. 環境変数HTTP_USER_AGENTにDoCoMoの文字が含まれている場合
  2. 環境変数REMOTE_HOSTが.docomo.ne.jpで終わっている場合
     (あるいはproxy***.docomo.ne.jpの場合)

EZWeb端末の特徴

WAP2.0対応端末

  1. 環境変数HTTP_USER_AGENTにKDDIの文字が先頭に含まれている場合

WAP2.0非対応端末

  1. 環境変数HTTP_USER_AGENTにUP.Browserの文字が先頭に含まれている場合

共通

  1. 環境変数REMOTE_HOSTが.ezweb.ne.jpで終わっている場合
     (.ido.ne.jpや.kddi.ne.jpの場合もある?BREWアプリからの通信は.brew.ne.jpで終わる)

Yahoo!ケータイ(旧Vodafone-Live)端末の特徴

  1. 環境変数HTTP_USER_AGENTにJ-PHONE又はVodafone又はMOT-又はSoftBankの文字が含まれている場合
  2. 環境変数REMOTE_HOSTが.jp-k.ne.jp/.jp-c.ne.jp/.jp-t.ne.jp/.jp-q.ne.jp/.softbank.ne.jpで終わっている場合

AIR-EDGE PHONE端末の特徴

  1. 環境変数HTTP_USER_AGENTにDDIPOCKET又はWILLCOMの文字が含まれている場合

各キャリアのページに使用されるIPアドレス帯についての情報が載っている為、.htaccessを使って簡単に制御することも出来ます。
WILLCOMの端末はHOSTで判別するのは難しい。
面倒なのでうちではUSER_AGENTのみで振り分けています。
(.htaccessを使うことでセンター経由のアクセスのみ振り分けることも出来ます。)

PHPで表現すると・・


<?php
if(strstr($_SERVER['HTTP_USER_AGENT'],"DoCoMo")){
  $env = 'i';
}elseif(strstr($_SERVER['HTTP_USER_AGENT'],"Vodafone")){
  $env = 'i';
}elseif(strstr($_SERVER['HTTP_USER_AGENT'],"SoftBank")){
  $env = 'i';
}elseif(strstr($_SERVER['HTTP_USER_AGENT'],"MOT-")){
  $env = 'i';
}elseif(strstr($_SERVER['HTTP_USER_AGENT'],"J-PHONE")){
  $env = 'i';
}elseif(strstr($_SERVER['HTTP_USER_AGENT'],"KDDI")){
  $env = 'ez';
}elseif(strstr($_SERVER['HTTP_USER_AGENT'],"UP.Browser")){
  $env = 'i';
}elseif(strstr($_SERVER['HTTP_USER_AGENT'],"WILLCOM")){
  $env = 'ez';
}else{
  $env = 'pc';
}
?>

上から順番に評価されるのでUP.Browserより上にKDDIやJ-PHONEなどを持ってきています。*1
正規表現(ereg,preg_matchなど)を使って書くことも出来ますがうちでは全てのアクセスに対して
前述の判別を行っているので負荷の軽い正規表現を使わない方法に変更しました。

各キャリア別技術情報

  1. 作ろうi-modeコンテンツ
    IPアドレス帯域
  2. EZfactory > 技術情報
    IPアドレス帯域
  3. Vodafone Developers Support Site
    IPアドレス帯域
  4. WILLCOM IPアドレス帯域

  1. SoftBankの端末にもUP.Browserという文字列が含まれるものがある為、すぐに古いauと決め付けるわけにはいかないので。 [→戻る]

このドキュメントについて

メタ情報

作成日
2006年02月03日 13時38分20秒
最終更新日
2007年04月26日 14時27分24秒