User-Agent

主にモバイル機器についてのユーザーエージェントと振り分けのために参考になるサイトのリスト。

携帯サイト用のツール

参考

各社の公表資料

ユーザエイジェント

IPアドレスの帯域

Mac

iPhone(safari)

Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3

iPhone user agent Matt Cutts: Gadgets, Google, and SEO

携帯・PHS

DoCoMo

iモード

識別文字列 ユーザーエージェントの例 機種
DoCoMo DoCoMo/1.0/SH505i/c20/TB/W24H12 SH505i
DoCoMo DoCoMo/2.0 SH903i(c100;TB;W24H16) SH903i

参考

作ろうiモードコンテンツ:ユーザーエージェント一覧 | サービス・機能 | NTTドコモ

au

識別文字列 ユーザーエージェントの例 機種
KDDI KDDI-CA33 UP.Browser/6.2.0.10.4 (GUI) MMP/2.0 W41CA
UP.Browser UP.Browser/3.04-ST13 UP.Link/3.4.5.9 A1011ST

UP.BrowserのライセンスはOPENWAVEが所有しているのでau・TUKA限定ではない。

参考

SoftBank

SoftBank SoftBank/1.0/811SH/SHJ001[/Serial] Browser/NetFront/3.3(抜粋) 811SH
Vodafone Vodafone/1.0/V703SH/SHJ001[/Serial]Browser/UP.Browser/ (抜粋) 703SH
MOT- MOT-V980/80.2F.2E. MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.1 702MO
J-PHONE J-PHONE/3.0/V403SH V403SH

UP.Browserが入っている機種があることに注意(auとの識別)

参考

WILLCOM

識別文字列 ユーザーエージェントの例 機種名
WILLCOM Mozilla/3.0(WILLCOM;SANYO/WX310SA/2;1/1/C128) NetFront/3.3 WX310SA
DDIPOCKET Mozilla/3.0(DDIPOCKET;JRC/AH-J3001V,AH-J3002V/1.0/0100/c50)CNF/2.0 AH-J3001V
PDXGW PDXGW/1.0 (TX=8;TY=6;GX=96;GY=64;C=G2;G=B2;GI=0) KX-PH32S

参考

Windows Mobile

Microsoft Windows Mobile 5.0 搭載ハードウェア情報で国内で発売されている機種の一覧を見ることが出来る。

DoCoMo

hTc Zは不明。X01HTと同じ会社であるHTCによって開発されている。

SoftBank

ユーザーエージェント 機種名
Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; HTC/X01HT; PPC; 240x320) X01HT

参考 スマートフォンでAjax - [JavaScript]All About

WILLCOM

判別文字 ユーザーエージェント 機種
SHARP/WS007SH; PPC; 480x640) Opera Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; SHARP/WS007SH; PPC; 480x640) Opera 8.60 [ja] W-ZERO3・Opera(モバイル)

参考

EMOBILE

Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 6.8) S01SH

参考

textbox.jp のネタ帳 :: EM・ONE(S01SH)のUser Agent

Opera Mini

識別文字 ユーザーエージェント
Opera Mini Opera/8.01 (J2ME/MIDP; Opera Mini/3.1.7139/1630; ja; U; ssr)

参考

W-ZERO3 Java版Webブラウザ「Opera Mini」を触ってみた。|W-ZERO3 友の会

PDA・ZAURUS・その他

PDA

 Mozilla/4.0 (PDA; PalmOS/sony/model crdb/Revision:1.1.19) NetFront/3.0

ZAURUS

Mozilla/4.0 (compatible; MSIE 5.5; Windows CE; sigmarion3)
Mozilla/4.08 (PDA; SL-C3000/1.0;Qtopia/1.4.9) NetFront/3.1
sharp pda browser/6.2[ja](MI-E25/1.0)

AirWiki: UserAgentより抜粋。

ゲーム機・携帯型

識別文字列 ユーザーエージェント 機種名
PSP Mozilla/4.0 (PSP (PlayStation Portable); 2.00) PlayStation Portable
Nitro Mozilla/4.0 (compatible; MSIE 6.0; Nitro) Opera 8.50 [ja] Nintendo DS

Wiiで見るサイトについて

ゲーム機・据え置き型

識別文字列 ユーザーエージェント
PS2 Mozilla/4.0 (PS2; PlayStation BB Navigator 1.0) NetFront/3.0
PLAYSTATION 3 Mozilla/5.0 (PLAYSTATION 3; 1.00)
Wii Opera/9.00 (Nintendo Wii; U; ; 1309-9; ja)

参考

PHPスクリプトによる振り分け

ユーザエイジェントの文字列を取得するには?

$_SERVER['HTTP_USER_AGENT']

を使う。その他の予約変数に関してはPHP公式マニュアルの定義済の変数を参照。

振り分け判定に使う関数の例

関数の実行時間のベンチマーク

PEAR::Benchmarkによる上記で挙げた実行時間のベンチマーク。 PHP スクリプトの実行時間の計測( PEAR Benchmark/Timer.php )を参考にした。

 
<?php
require('Benchmark/Timer.php');
//$agent = 'Mozilla/5.0 (Windows NT 5.1; U; ja; rv:1.8.0) Gecko/20060728 Firefox/1.5.0';
$agent= 'DoCoMo/2.0 N900iS(c100;TB;W24H12)';
$mobile = 'DoCoMo';
 
$Timer =& new Benchmark_Timer();
$Timer->start();
 
preg_match("/$mobile/", $agent);
$Timer->setMarker( 'preg_match' );
 
ereg($mobile, $agent);
$Timer->setMarker( 'ereg' );
 
substr_count($agent, $mobile);
$Timer->setMarker( 'substr_count' );
 
substr($agent, $mobile);
$Timer->setMarker( 'substr' );
 
strstr($agent, $mobile);
$Timer->setMarker( 'strstr' );
 
strpos($agent, $mobile);
$Timer->setMarker( 'strpos' );
 
$Timer->stop();
$Timer->display();
 
 
-----------------------------------------------------------
marker         time index            ex time         perct
-----------------------------------------------------------
Start          1178187230.66349000   -                0.00%
-----------------------------------------------------------
preg_match     1178187230.66379600   0.000306        64.69%
-----------------------------------------------------------
ereg           1178187230.66384800   0.000052        10.99%
-----------------------------------------------------------
substr_count   1178187230.66387400   0.000026         5.50%
-----------------------------------------------------------
substr         1178187230.66389600   0.000022         4.65%
-----------------------------------------------------------
strstr         1178187230.66392000   0.000024         5.07%
-----------------------------------------------------------
strpos         1178187230.66394200   0.000022         4.65%
-----------------------------------------------------------
Stop           1178187230.66396300   0.000021         4.44%
-----------------------------------------------------------
total          -                     0.000473       100.00%
-----------------------------------------------------------
 

preg_matchのマニュアルによれば

ティップ: ある文字列が他の文字列内に含まれているかどうかを調べるためだけに preg_match() を使うのは避けた方が良いでしょう。 strpos() か strstr() 関数を 使う方が速くなります。

その他・参考になるサイト

ユーザエイジェント判定のための文字列

個体識別

mod_rewrite

海外端末のユーザーエージェントりスト