アンケートご協力のお願いgihyo.jpでは,2010年度に向けて豪華プレゼントが当たる読者属性アンケートを実施しております。ご協力ください。

gihyo.jp » DEVELOPER STAGE » 連載 » 【PHPで作る】初めての携帯サイト構築 » 第2回 携帯キャリアと端末を判別する

【PHPで作る】初めての携帯サイト構築

第2回 携帯キャリアと端末を判別する

携帯サイトはキャリア・端末ごとに仕様が異なることを説明してきました。そのため多くの場合,プログラムにより各キャリア・端末にあわせた方法で,出し分けを行っていく必要があります。携帯サイトを作る上でまず大切になるのが,アクセスしてきている携帯の,キャリアと端末を判別するところと言えるでしょう。その判別方法について見ていきたいと思います。

キャリアを判別する方法

まずキャリアの判別について見ていくことにしましょう。キャリアの判別には大きく2つの方法があります。

  1. ユーザーエージェントでキャリアを判別する方法
  2. IPアドレスでキャリアを判別する方法

このどちらかを使って判別をすることになります。

ユーザーエージェントで判別する方法

ユーザーエージェントの情報からアクセスしてきている携帯キャリアを判別する方法です。携帯端末はHTTPリクエストのユーザーエージェントにアクセス端末の情報を記述してきます。この情報を解析することでどのキャリアや端末がアクセスしてきているのかを確認することができます。

ドコモのユーザーエージェント例

DoCoMo/2.0 P905i(c100;TB;W20H13)

実際の情報を見るとなんとなく理解できる内容だと思います。docomoのP905iの端末がアクセスしてきているのは一目瞭然でしょう。このユーザーエージェントの情報を取得して解析することで,キャリアを判別することができます。

IPアドレスでキャリアを判別する方法

キャリアを判別する方法にはもう一つの方法があります。アクセス元のIPアドレスで判別する方法です。携帯からインターネットにアクセスする場合は,一度キャリアのゲートウェイを通り,その後インターネットを通じて各携帯サイトにつながります。

図1 携帯におけるインターネットの基本的な接続構成

図1 携帯におけるインターネットの基本的な接続構成

つまりアクセス元のIPアドレスは各キャリアのIPアドレスとなるため,IPアドレスとキャリアのマッピングデータがあれば,キャリアを判別することができます。

判別方法による違い

ユーザーエージェントとIPアドレスによるキャリア判別は,それぞれどういったメリット・デメリットがあるのでしょう。1つは,ユーザーエージェントは偽装が可能だということです。あくまでHTTPリクエストとして送られてきた情報であり,携帯ではなくPC上から不正に書き換えてアクセスすることができます。一方IPアドレスによる判別は,不正にキャリアのゲートウェイを使ってアクセスすることはできないため,より信頼できる判別データと言えるでしょう。つまり携帯以外の不正なデータや端末でアクセスされたくない場面では,IPアドレスによる判別のほうが向いていると言えます。一方IPアドレスによる判別は,IPアドレスとキャリアのマッピングデータを事前に用意し,定期的な更新をしていく必要があるので手間と運用をきちんと考えておく必要があります。

次にキャリアだけでなく,アクセスしてきている端末の情報を判別していく方法を見ていきましょう。

端末を判別する

次はアクセスしてきている端末を判別する方法です。キャリアの判別と同様,ユーザーエージェントに端末の情報は付記されてきます。ユーザーエージェントの取得方法は次の通りです。

PHPでユーザーエージェント情報を取得する

$_SERVER['HTTP_USER_AGENT']

このユーザーエージェントの情報を解析し端末情報を取得することになります。ただし各キャリアによってこのユーザーエージェントの表記は異なります。キャリアだけならともかく,端末やブラウザーバージョンレベルでも統一されていないため,情報は載っているにせよ,仕様を細かく理解しないと解析することができない状態です。

ユーザーエージェントの例

キャリア 端末 ユーザーエージェント
docomo F501i DoCoMo/1.0/F501i
docomo F900i DoCoMo/2.0 F900i(c100;TB;W22H12;ser***;icc***)
au A3011SA UP.Browser/3.04-ST13 UP.Link/3.4.5.9
au W21SA KDDI-SA31 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0
SoftBank J-T03 J-PHONE/2.0/J-T03
SoftBank 910T SoftBank/1.0/910T/TJ001/SN*** Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1

このユーザーエージェントから適切にキャリアと端末を取り出してくれる便利なライブラリがPHPのPEARライブラリに用意されています。Net_UserAgent_Mobileです。

著者プロフィール

荒木稔(あらきみのる)

京都出身。ホテルマンを経て,基幹システムの開発などに従事した後ウェブクリエイターとして独立。利用者にもっと近いサービスを提供したい想いから,携帯を中心とした企画/開発/執筆/講演活動を行う。近著に「PHP×携帯サイト デベロッパーズバイブル」(ソフトバンククリエイティブ)。家族のための携帯サイト「ファミリーモバイル」(http://www.fmob.jp)を立ち上げ現在に至る。

memokamihttp://memokami.com

コメント

コメントの記入

パスサポ

多数の情報処理技術者試験対策書籍の発行実績を誇る技術評論社がお届けする,資格試験合格サイト「めざせ! 情報処理試験 パスサポ」が開設されました。

ピックアップ

サクセスストーリーに続く,快適サーバー運用管理のヒント!

データの増大,煩雑な管理,システムダウン,セキュリティなど,迫りくる課題からシステム管理者の負担を軽くするポイントを解説します。

gihyo.jp インフラエンジニア情報局

ネットワークやITにかかわるあらゆる業種で必要とされるインフラエンジニアに向けた技術情報や心構え,その魅力について多角的に紹介。

テストエンジニア ステーション

いま,ITに関わるあらゆる開発業務で注目されつつあるテスト系エンジニアをターゲットにしたコンテンツサイトを展開します。

一行クイックアンケート

gihyo.jpで取り上げてほしいネタは?

※検索はページ右上の検索ボックスをご利用ください。

その他の連載

読むウェブ ~本とインタラクション

ディスプレイで読む活字とそのインタラクション(interaction:相互作用)について,最新Webを紹介しながら読み解いていく。

いま,見ておきたいウェブサイト

この連載では,国内外の最新のウェブサイトを隔週更新で取り上げ,これら最新サイトの特徴や素晴らしい部分を,さまざまな角度から解説していきます。

Windows phoneアプリケーション開発入門

Windows Marcketplace for Mobileがサービス開始され,作成したアプリケーションを個人でも世界をターゲットに公開できる環境が整ってきました。これを機にWindows phoneアプリケーションの開発をしてみませんか?

ここは知っておくべき!Windows Server 2008技術TIPS

5年ぶりのサーバOSとなったWindows Server 2008が出荷されて早2年。2009年にはR2が出荷され,再び注目を集めています。発売前から実施したトレーニングによって感じた,インフラエンジニアの方々に知っておいていただきたい機能を中心にご紹介します。

キーパーソンが見るWeb業界

本連載はWeb Site Expert/gihyo.jpとの連動企画です。阿部淳也, 長谷川敦士, 森田雄のお三方による,Web業界をテーマにした座談会です。

きたみりゅうじの聞かせて珍プレー

ソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。みなさんからの投稿もお待ちしてます!

ActionScript 3.0で始めるオブジェクト指向スクリプティング

野中文雄氏が,簡単なスクリプトは書いたことがあるという初級者を対象に,ActionScript 3.0の基本からクラス定義までを解説します。

まだ間に合う「ITパスポート」受験対策 原山先生の短期合格塾

この連載では,4月18日のITパスポート試験の受験に向けて,短い期間で効率良く受験対策を行う方法や,確実に得点するための裏ワザなどを伝授していきます。

連載一覧

gihyo.jp

  • DEVELOPER STAGE
  • ADMINISTRATOR STAGE
  • WEB+DESIGN STAGE
  • LIFESTYLE STAGE
  • SCIENCE STAGE
  • NEWS & REPORT

書籍案内

  • 新刊書籍
  • 書籍ジャンル一覧
  • 書籍シリーズ一覧
  • 新刊ピックアップ
  • ロングセラー
  • 電脳会議

定期刊行物一覧

  • Software Design
  • WEB+DB PRESS
  • Web Site Expert
  • 組込みプレス