人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

携帯電話のUserAgentから機種名を抜き出す方法(多分正規表現)を教えてください。
■機種名
P900i
V801SA
MA21
HI01
■UserAgent
”DoCoMo/2.0 P900i(c100;TB;W20H09)”,
”J-PHONE/5.0/V801SA/SN350222671337837 SA/0001JP Profile/MIDP-1.0 Configuration/CLDC-1.0 Ext-Profile/JSCL-1.1.0”,
”KDDI-MA21 UP.Browser/6.0.2.276 (GUI) MMP/1.1”,
”UP.Browser/3.01-HI01 UP.Link/3.4.5.2”,

そんで機種名に対して解像度やスクラッチパッドサイズをDBに入れて紐付けておき、各機種毎の表示や動作を変えたいと考えています。
ご指摘などよろしくお願いいたします。

●質問者: kunitz
●カテゴリ:コンピュータ
✍キーワード:2.0 C-1 dB DoCoMo GUI
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● akimasa2000
●17ポイント

http://www.din.or.jp/~ohzaki/regex.htm

Perl正規表現雑技

/P900i|V801SA|MA21|HI01/

かなり効率が悪いですがこのようなのはいかがですか?

◎質問者からの返答

ありがとうございます!

日本の全ての携帯でお願いします。

たとえばDoCoMoの今まで発売した携帯が放つ全てのUserAgentをパースして機種名だけ抜き出す。

そういった正規表現です。


2 ● akimasa2000
●17ポイント

http://www.kabocha.org/jelfe/11/02.html

山口家の逆襲->EzWebのためのperl(CGI)->ユーザーエージェント

EzwebのUserAgentの正規表現です

http://specters.net/cgipon/labo/c_dist.html

モバイルCGI研究(総合編)端末判別法 [CGIぽん]

参考

◎質問者からの返答

ありがとうございます!


3 ● dolceromanzo
●18ポイント

http://www.nttdocomo.co.jp/p_s/imode/spec/useragent.html

ドコモはこれです

PDC

DoCoMo/1.0/SO505i/c20/TB/W21H09/serNMAIA000001

(DoCoMo/1.0/機種名/キャッシュ/状態コード/ブラウザ表示可能バイト数/個体識別情報

FOMA

DoCoMo/2.0 P900i(c100;TB;W22H12;serXXXXXXXXXX)

(DoCoMo/2.0 機種名(キャッシュ;状態コード;ブラウザ表示可能バイト数;個体識別情報)

1.USER_AGENTを/で分割して(※A)、第1番目が「DoCoMO」ならi-mode、「J-PHONE」ならVodafone live!、「Up.Browser」ならEZwebのHDML、先頭4文字がKDDIならEZwebのWAP2.0

2.i-modeの場合、Aの2番目をさらに空白と/と;と(で分割し(※B)、Bの1番目が「1.0」ならPDC、「2.0」ならFOMA。

3.PDCならAの3番目が機種名、FOMAならBの2番目が機種名

http://www.dp.j-phone.com/dp/tool_dl/web/useragent.php

1.Aの3番目が機種名。_XXと付いている機種もあるので削除して管理してもよい。

◎質問者からの返答

ありがとうございます!

ずばりな正規表現までお願いしたいのですが。。。


4 ● dolceromanzo
●18ポイント

http://www.hatena.ne.jp/1089890054

携帯電話のUserAgentから機種名を抜き出す方法(多分正規表現)を教えてください。 ■機種名 P900i V801SA MA21 HI01 ■UserAgent ”DoCoMo/2.0 P900i(c100;TB;W20H09)”, ”.. - 人力検索はてな

簡単ですがPHPならこんなかんじです

$device_id に機種名が入ります。

――――――――――――――――――――――――――――――――――――――――

$ua = explode(”/”, $_SERVER[”HTTP_USER_AGENT”]);

switch ($ua[0])

{

case ”DoCoMo”:

$tmp = split(”[ /(]”, $ua[1]);

if ($tmp[0] == ”1.0”) $device_id = $ua[2];

else if ($tmp[0] == ”2.0”) $device_id = $tmp[1];

break;

case ”J-PHONE”:

$device_id = strtok($ua[2],”_”);

break;

case ”UP.Browser”:

$tmp = split(”[ -]”, $ua[1]);

$device_id = $tmp[1];

break;

default:

if (substr($ua[0], 0, 4) == ”KDDI”)

{

$tmp = split(”[ -]”, $ua[0]);

$device_id = $tmp[1];

}

}

――――――――――――――――――――――――――――――――――――――――

◎質問者からの返答

ありがとうございます!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ