■機種名
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に入れて紐付けておき、各機種毎の表示や動作を変えたいと考えています。
ご指摘などよろしくお願いいたします。
http://www.din.or.jp/~ohzaki/regex.htm
Perl正規表現雑技
/P900i|V801SA|MA21|HI01/
かなり効率が悪いですがこのようなのはいかがですか?
http://www.kabocha.org/jelfe/11/02.html
山口家の逆襲->EzWebのためのperl(CGI)->ユーザーエージェント
EzwebのUserAgentの正規表現です
http://specters.net/cgipon/labo/c_dist.html
モバイルCGI研究(総合編)端末判別法 [CGIぽん]
参考
ありがとうございます!
ドコモはこれです
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番目が機種名
1.Aの3番目が機種名。_XXと付いている機種もあるので削除して管理してもよい。
ありがとうございます!
ずばりな正規表現までお願いしたいのですが。。。
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];
}
}
――――――――――――――――――――――――――――――――――――――――
ありがとうございます!
ありがとうございます!
日本の全ての携帯でお願いします。
たとえばDoCoMoの今まで発売した携帯が放つ全てのUserAgentをパースして機種名だけ抜き出す。
そういった正規表現です。