ケータイの端末ID・ユーザIDの取得についてまとめてみました
    このエントリをはてなブックマークに登録

2008/9/8 月曜日 matsui Posted in au, DoCoMo, PHP, SoftBank 12 Comments »

ケータイサイトでは、端末ID・ユーザIDを取得する、という処理をよく行うことがあります。
ログインの度に、ユーザ名とパスワードを入力するというのは、ケータイの操作性の面からも現実的ではないためです。

今回はそんな各種IDの取得方法について、PHPを使った場合を例にとりまとめてみました。

※ここでは端末IDを「ケータイに振られた個体識別情報(製造番号など)」、ユーザIDを「契約に紐付くID」として解説しています。

 

ドコモ端末での取得方法

1. utnを使う

ドコモ端末ではutn属性を使うことによって、フォームやリンクから個体識別情報を取得することができます。
対応機種は、iモード対応HTML 3.0以降の機種(但しSO210i,SH251i,SH251iSを除く)で、現在使われているほとんどの端末に対応していると言ってよいでしょう。

<form action="sample.php" method="post" utn>
<input type="submit" name="submit">
</form>
<a href="sample.php" utn>

utnを使う場合、ケータイ端末側では、「携帯電話情報を送信しますか?」といった確認のダイアログが表示されます。


utn使用時に表示されるダイアログ

送信された端末IDは、ユーザエージェントから取得できます。

$agent = $_SERVER['HTTP_USER_AGENT'];

取得できるフォーマットの例は次の通りです。

FOMA

DoCoMo/2.0 P902i(c100;TB;W24H12;serXXXXXXXXXXXXXXX;iccxxxxxxxxxxxxxxxxxxxx)

・FOMA端末製造番号フォーマット
 → serXXXXXXXXXXXXXXX (ser + 15桁の英数字)
・FOMAカード個体識別子
 → iccxxxxxxxxxxxxxxxxxxxx (icc + 20桁の英数字)

mova

DoCoMo/1.0/P504i/c10/TB/ser***********

・製造番号
 → ser*********** (ser + 11桁の英数字)

FOMA端末製造番号と製造番号は、ケータイ端末にふられた(機種変更で変わる)番号であることに注意してください。

参考:
→ NTT docomo iモード対応HTMLタグ一覧 utn属性 [nttdocomo.co.jp]

 

2. iモードIDを使う

iモードIDは2008年3月31日から提供された、ドコモの新しいユーザ識別方法です。
契約ユーザごとに一意となる番号のため、機種変更があってもiモードIDは変わりません。
全てのiモード端末で利用でき、utnのように確認用のダイアログがでないことも特徴です。

URLに「guid=ON」というパラメータを付けると、拡張ヘッダにiモードIDが付く、という仕様です。
サーバ側からは次のように取得できます。

$imode_id = $_SERVER['HTTP_X_DCMGUID'];

ただし、この機能を利用するには、次のメニューから利用者が通知を許可している必要があります。(デフォルトは通知するとなっています)
iモードメニュー → お客様サポート → 各種設定 → iモードID通知設定

また仕様上、SSL通信時は利用できないことに注意してください。

参考:
→ ke-tai.org 本日提供が開始された「iモードID」機能を早速試してみました [ke-tai.org]
→ NTT docomo iモードセンタの各種情報 iモードIDについて [nttdocomo.co.jp]

 

他にも公式サイトで使われるNULLGWDOCOMO [itpro.nikkeibp.co.jp]方式もありますが、禁則事項に触れるのであまり詳しくは書けません。
公式サイト以外のいわゆる勝手サイトからは利用できないため、一般の開発者にはあまり関係がないでしょう。

 

au端末での取得方法

EZwebの場合はごくシンプルで、EZ番号(旧称サブスクライバID)を利用します。
こちらは契約ごとに振られる番号のため、機種変更があっても変わりません。
取得方法は次の通りです。

$ez_no = $_SERVER['HTTP_X_UP_SUBNO'];

EZ番号の形式:
01234567890123_xx.ezweb.ne.jp
([14桁の数値]_[2桁の英字].ezweb.ne.jp)

こちらもユーザ側で通知設定の可否を設定することができます。
au oneトップ → auお客様サポート → 申し込む/変更する → EZ番号通知設定

参考:
→ au EZfactory ユーザエージェント [au.kddi.com]

 

ソフトバンク端末での取得方法

1. 端末のシリアルを使う

ソフトバンク端末は、ユーザエージェントに端末ID(シリアル)が付加されています。
ただし、端末側のブラウザ設定メニュー(ソフトバンクのサイト内ではないことに注意)で、製造番号通知のON/OFFを切り替えることができます。
このIDは端末に振られた番号のため、機種変更に伴い変更になります。

例:

SoftBank/1.0/824T/TJ001/SNxxxxxxxxxxxxxxx Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1

形式:
SN012345678901234 (SN + 15桁の数字)

 

2. x-jphone-uidを使う

P型以降の端末では「x-jphone-uid」を使ってユーザIDを取得できます。
こちらは契約ごとのIDのため、機種変更があっても変わりません。

$uid = $_SERVER['HTTP_X_JPHONE_UID'];

形式:
16桁の英数字(大文字・小文字混在)

こちらは、ソフトバンクのメニューからID通知の可否を設定できます。
メニューリスト → MySoftBank → 各種変更手続き → ユーザID通知設定

参考:
→ ソフトバンク Mobile Creation ユーザエージェント一覧 [creation.mb.softbank.jp]

※追記
SSL利用時には上記IDが取得できないケースがあるようです。
詳しくはコメント欄をご覧ください。

 

 

なお、端末IDを利用したログインでは、端末が中古として流通し持ち主が変わった場合でも、ログインできてしまうという問題がありますので、注意が必要になります。

また、PCからアクセスできる環境では、IDの詐称もごく簡単に行えます。
IPアドレスから接続元を検証するなどの対応が必要になることにご注意ください。

 

この辺りのID取得処理は、「PEAR::Net_UserAgent_Mobile」などのライブラリを使うことで、より簡単に実装可能です。

すっかり長文になってしまったので、サンプルプログラムなどはまた後日掲載したいと思います。

※続きの記事を書きました → こちら

 

関連:



ソフトバンクのiPhone3Gを買ってきました
    このエントリをはてなブックマークに登録

2008/7/11 金曜日 matsui Posted in SoftBank 3 Comments »

iPhoneを買ってきました。

・・・とは言っても、札幌は11日のお昼12時に発売。
まだ整理券をゲットしただけです。

前日の夜10時頃から行列に参加。
近くの焼き鳥屋でお持ち帰りで串を買い、それを食べたりしながら時間を潰します。
楽しいです。


夜の様子、この時間はまだ人が少ない

空いた時間はノートPCでプログラミングしていました。
他にすることがないので、とてもはかどります。
行列プログラミング、オススメです。

朝方になると、約100人以上の人が並んでいたようです。


栄光の1番をゲット!

とは言っても、1番手で並んでたわけではなく、ホワイト16Gの1人目だっただけです。

以前、Wiiを買うときにもこのお店に並んだのですが、あの時は季節が冬だったため、地面は雪、気温は氷点下で、まさに生死をかけた戦いでした。
それに比べると今回は、雨は降ったものの快適そのもので、全然物足りない感じでした。

これから仮眠を取り、12時前にまた出撃です。
帰ってきましたら、続きを更新する予定です。

 

– 7月11日 15時 追記 –

無事契約が終わり帰ってきました。

一緒に行った友人は、私より先にカウンターに座ったにも関わらず、システム不調のため散々またされたあげく、明日また来てくれと言われたそうです。

私はラッキーなことにスムーズに契約できました。


箱、指紋が目立たなさそうという理由でホワイト16Gを買いました


箱から出したところ


裏面


ke-tai.orgにアクセス

 

この手の写真アップや検証は、他のブログがやってくれるでしょうから、1点だけ当サイトらしい調査をして寝ることにしました。
(徹夜のため、この時点でかなり限界です。。。)

というわけで、iPhoneからの接続元IPアドレスを調査してみました。
ログから確認したところ、接続元IPは「126.254.2.xxx」でした。

ソフトバンクのサイトと見比べてみても、このIPアドレス帯域は記載されていません。
つまりケータイからのみのアクセスを許可しているサイトで、もしiPhoneからのアクセスも許可するには、別途IPアドレスの追加が必要になるようです。
(あまりそのようなケースは無いとは思いますが)

ひとまずHTMLソースを見られたりする心配はないようですが、iPhoneのIPアドレス帯域はどこかで公開されているものなのでしょうか?

ちなみにUAは、

“Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0 like Mac OS X; ja-jp) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5A345 Safari/525.20”

です。

それではおやすみなさい。。。。

 

関連:



ドコモのCSSをインラインに埋め込んでくれるPHPライブラリ「toInlineCSSDoCoMo」(続き)
    このエントリをはてなブックマークに登録

2008/7/10 木曜日 matsui Posted in SoftBank, 記事紹介・リンク 4 Comments »

昨日から、ドコモで外部CSSやスタイルタグが利用できるようになるPHPライブラリ、「toInlineCSSDoCoMo」に夢中です。

読み手がかたよってしまうことを承知の上で、続編の記事を書かせていただきます。

私の作成したサイトはSmartyを使ったものが多いため、フィルタを作成しようかなと考えていたら、既に同じようなコードを書いていた方がいました。
当ブログにいつもコメントを戴いているmaru_ccさんのブログです。

→ PHPライブラリ「toInlineCSSDoCoMo」をEthnaに組み込んでみた [hatena.ne.jp]

 

ここでは、Ethnaに「toInlineCSSDoCoMo」を組み込む方法が紹介されています。
Ethna使いの方は要チェックですね。

ひとまず私はSmartyフィルタだけ拝借し、一部を修正して利用させていただくことにしました。

 

しかし実際に動かしてみたところ、幾つか問題が出てきました。
どれも「toInlineCSSDoCoMo」の問題というよりは、PEARの「HTML_CSS」の問題のようです。

 

1. Warningエラーが出る

サイト内のHTMLの書き方が汚く、HTMLをパースする際にエラーになってしまうようです。
こちらは少しずつ書き直していくしかないですね。

ただ、「<a id=”anchor” name=”anchor”></a>」のような書き方でも何故かエラーになってしまうため、困っていたりします。

通常のCSSと同じようにエラーを出したくない方は、「@」でエラー抑止をすると良いと思います。
またCSSファイルが読み取れなかった場合でも、Exceptionに飛んでいってしまうため、注意が必要です。

 

2. 文字化けしてしまう

HTMLヘッダ内の文字コード指定のmetaタグより前にtitleタグがあった場合には、文字化けしてしまうようです。
調べてみると、metaタグを先に書くのが正しいようですね。
今まで特に問題がなかったので気づきませんでした。

 

3. non-objectエラーで止まってしまうことがある

styleタグで内部CSSを指定した場合に、152行目の「$parent->removeChild($node);」でエラーとなってしまうことがあります。
同じstyleタグの書き方でもエラーが出る場合と、出ない場合があるので詳細は調査中です。(styleタグ自体を削除すると直ります)
ひとまず152行目に、「if ($parent) {」を追加し回避しています。

 

4. Smarty->fetchでコンテンツを取得してる場合、outputfilterでは対応できないかも

私のサイトでは、よく使う表示ブロックは、Smartyのテンプレート関数を作成し、独自タグを設定しています。

例えば、最新ニュースを表示したいときには、タグ「{displayNews num=”5″}」で表示するようにしています。
(こうすると、あちこちでニュースを表示できて便利なためです)

内部ではsmarty->fetchメソッドでニュースを取得しているのですが、fetchに対してもoutpufilterが効いてしまいます。
fetchされるテンプレートは当然ヘッダ情報などを持っていませんので、outputfilterとtoInlineCSSDoCoMoとの相性は、あまり良くありません。

ということで、「ob_start([コールバック関数])」を利用し、出力直前の情報に対して、処理を行うことにしました。

コールバック関数のサンプルは次の通りです。

<?php
// obフィルタの設定
ob_start('ob_filter_cssdocomo');

function ob_filter_cssdocomo($out)
{
  require_once 'toInlineCSSDoCoMo.php';
  $basedir = dirname($_SERVER['SCRIPT_FILENAME']) . '/';
  try {
    $buf = toInlineCSSDoCoMo::getInstance()->setBaseDir($basedir)->apply($out);
  } catch (Exception $e) {
    // エラー処理へ
  }
  return $buf;
}
?>

今のところ、これで一通りうまくいっています。
もう少し試行錯誤が必要ですが、快適なHTML製作に向けて、1歩前進です。

 

関連:



iPhone3G、日本では7月11日に発売
    このエントリをはてなブックマークに登録

2008/6/10 火曜日 matsui Posted in SoftBank No Comments »

先日、日本ではソフトバンクから発売されることが決まったばかりのiPhoneですが、早くも発売日が決定したようです。

→ ソフトバンク プレスリリース ソフトバンクとアップル、iPhone 3Gを7月11日より日本で発売 [softbankmobile.co.jp]

→ AV Watch 米Apple、3G対応のiPhone発表。日本発売は7月11日 [watch.impress.co.jp]

→ GIGAZINE ついに「iPhone 3G」をアップルが発表、日本でも7月11日発売 [gigazine.net]

→ GIGAZINE 日本で発売される「iPhone 3G」の詳細なスペックと高解像度画像いろいろ [gigazine.net]

→ NIKKEI NET IT+PLUS iPhone 3G「ホワイトプランにするつもり」・ソフトバンク孫社長 [nikkei.co.jp]

 

今回の3Gモデルでは、HSDPAやGPSに対応し、バッテリーも長持ちするようになっているとのことです。

発売日は、2008年7月11日(金)、価格は8Gモデルが$199、16Gモデルが$299とのことです。
この価格は安いですね。

購入はソフトバンクショップで行えるようです。
もう予約は受け付けているのでしょうか?

 

関連:



ソフトバンクのiPhone発表に関する記事をまとめてみました
    このエントリをはてなブックマークに登録

2008/6/5 木曜日 matsui Posted in SoftBank No Comments »

昨日の発表から、モバイル関連のサイトは、ニュースもブログもiPhoneに関する話題一色ですね。

せっかくですので、これらに関する記事をまとめ、

「iPhoneは本当に売れるのか?」
「売れるとしたら、どの層にどれくらい売れるのか?」

について考察してみることにしましょう。

 

まずは経緯のまとめです。

6月4日の発表直後から、各ニュース系サイトはこぞってiPhoneの話題を取り上げました。
技術系サイトのみならず、一般の新聞や、スポーツ新聞までもが掲載しています。

→ ITMedia +D Mobile ソフトバンクモバイル、年内に「iPhone」を発売 [plusd.itmedia.co.jp]

→ ケータイWatch ソフトバンク、「iPhone」を年内に発売へ [k-tai.impress.co.jp]

→ YOMIURI ONLINE 「iPhone」ソフトバンクが販売契約…年内発売の予定 [www.yomiuri.co.jp]

→ SANSPO.COM ソフトバンクが「iPhone」発売へ [www.sanspo.com]

 

発表の舞台裏としてはこのような感じだったようです。

→ asahi.com iPhone、ソフトバンクを選んだわけ [www.asahi.com]

各国で最大手から発売されたため、ドコモ優位との見方もあった。通信料収入の一部をアップルに納める仕組みがあり、「ドコモが難色を示し、ソフトバンクが折り合った」との見方がある。さらに、アップルのスティーブ・ジョブズ最高経営責任者(CEO)とソフトバンクの孫正義社長の個人的な交流も有利に働いた模様だ。

→ NBニュース 念願のiPhoneを獲得した舞台裏 [business.nikkeibp.co.jp]

関係者によると、米アップルは日本でのiPhone販売について、6月2日の週であれば携帯電話会社の好きなタイミングでの事実のみの公表を許可したという。

ソフトバンクに決まった理由は、上納金+人脈。
そしてあのシンプルなプレスリリースは、アップルによる制限がかかっていたようです。

 

このように、ものすごい話題(参考サイト)となっているiPhoneですが、否定的な意見を書く人たちも多く出てきています。

→ Thirのはてな日記 iPhoneは(あまり)売れないかもしれないという話 [d.hatena.ne.jp]

中学生~高校生が携帯電話をどんなことに使っているか見てみると、「メール」「ウェブ」「モバゲー」「ワンセグ」が主だったりする。で、iPhoneはそのどの機能に関しても、日本の携帯電話より貧弱、もしくは搭載していない。特に我々が思っている以上にモバゲーの力は偉大で、これがiPhone上で動かない限り、中高生はiPhoneを買わないだろうと思う。

→ デジタルマガジン iPhoneは売れない [digimaga.net]

最後にiPhoneの求めるユーザのハードルの高さです。実際iPhoneを自分にとって魅力ある携帯電話にしようと思ったら、自作アプリの導入などさまざまなことが必要になってきます。しかし、実際にそこまで行える人はほとんどいません。

 

これらブログやコメント欄、各掲示板などに書かれている意見をまとめると、次のような感じになるのではないでしょうか。

  • iPhoneの話題性は高く、かなり多くの人が興味を持っている
  • 「他キャリアから移行してでも買う」と宣言している人が、多数出てきている
  • 「ワンセグ」や「おサイフケータイ」が無いのは困る
  • 「モバゲー」をはじめとするケータイサイトが見れないのも困る
  • 上納金や通信量の関係で、月額料金も高くなりそう
  • マニア以外の一般人は、思ったより買わないのではないか
  • 若い人は意外と買わないのではないか
  • ケータイ世代よりも、ちょっと上の年代の人に売れそう
  • 少なくとも、ソフトバンクのシェアは増えそうだ

 

ガラパゴス状態となっていた日本のモバイル業界を、一気に駆逐するかもしれないとまで言われていたiPhoneですが、どうやらそこまではいかないであろうという見解が多いように感じます。

実際に、私の職場にいる若い人たち(10代後半)に聞いてみたところ、次のような答えが返ってきました。

  • まあ欲しいけど機種変まではしない、周りもそうだと思う
  • 買いはしないけど、道ばたに落ちてたら拾う

やはり意外と冷めた意見ですね。

ちなみに私は発売日に並んででも買うと思います。

 

関連: