>> i's SQUARE >> Webサービス構築ガイド >> 携帯電話の固体識別情報を取得する

携帯電話の固体識別情報を取得する

携帯電話はその端末を識別するID(固体識別情報)を持っていますので、 これを利用してアクセスしてきたユーザーを判別する事が可能です。
以下に、各キャリア毎の固体識別情報取得方法を紹介します。



■ドコモ

utn属性をAタグやFORMタグの中に追加します。

<A href="URL" utn>
<FORM method="メソッド" action="URL" utn>
この属性がセットされたリンクやボタンをクリックすると、 ユーザに固体識別情報の送信を確認するダイアログが表示され、ユーザーが許可した場合のみ ユーザーエージェントの一部に固体識別情報が追加されます。
◆FOMA以外の機種の場合:

送信される製造番号(11桁のユニークな英数字)はユーザエージェントの末尾に追加されます。
・ユーザエージェントフォーマット:
 DoCoMo/1.0/X503i/c10/ser***********
・製造番号フォーマット:
 ser***********(ser:固定、***********:製造番号)

▼製造番号を取得するサンプルプログラム(Perl):

$agent = $ENV{'HTTP_USER_AGENT'};
$ser_index = index($agent,'ser');
if ($ser_index != -1) { $uid = substr($agent,$ser_index+3); }
◆FOMAの場合:

ユーザエージェントの末尾にFOMA端末製造番号、FOMAカード製造番号が追加されます。
・ユーザエージェントフォーマット:
 DoCoMo/2.0 YYYY(c10;serXXXXXXXXXXXXXXX; iccxxxxxxxxxxxxxxxxxxxx)
・FOMA端末製造番号フォーマット:
 serXXXXXXXXXXXXXXX(ser+15桁の英数字)
・FOMAカード製造番号フォーマット:
 iccxxxxxxxxxxxxxxxxxxxx(icc+20桁の英数字)
尚、公式サイトの場合はNULLGWDOCOMOを使う事で簡単に固体識別情報を取得することが出来ます。
http://xxxx.xxx?uid=NULLGWDOCOMO
公式サイトの場合、URLに「uid=NULLGWDOCOMO」を付加すると、このパラメーター(uid)が自動的に固体識別情報に変換されます。


■ソフトバンク

ソフトバンク端末は、ユーザーエージェントに端末IDが付加されています。
但し、端末の設定により「ユーザID通知」をOFFにしていると付加されません。

Vodafone/1.0/V904SH/SHJ001/SNxxxxxxxxxxxx
xxxxxxxxxxxx の部分に「端末シリアル番号」が入ります。

他には、HTTP_X_JPHONE_UID (x-jphone-uid) を使う方法があります。
HTTPリクエストヘッダに情報が付加されますので、 例えばPerlの場合は $ENV{HTTP_X_JPHONE_UID}; で取得出来ます。


■KDDI au

au 端末では、HTTPリクエストヘッダーからEZ番号(サブスクライバ ID)を取得することが可能です。
但し、EZ番号通知設定で通知しないの設定になっている端末からは取得出来ません。

EZ番号(サブスクライバ ID)のフォーマット:xxxxxxxxxx_xx.ezweb.ne.jp
例えばPerlの場合は $ENV{HTTP_X_UP_SUBNO}; で取得出来ます。



三つのデバグは一つのバグを産む。これをバグのエンドレスループという
by プログラマーの格言