最近発売されたスマートフォンのユーザーエージェント

INFOBAR A01

INFOBARがもれなく付いてくる

Mozilla/5.0 (Linux; U; Android 2.3.3; ja-jp; INFOBAR A01 Build/S6160) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1

BlackBerry Bold 9780

※「BlackBerry」が最初に来ない

Mozilla/5.0 (BlackBerry; U; BlackBerry 9780; ja) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.587 Mobile Safari/534.8+

衝撃的なのは、BlackBerry Bold 9780だ。
ずっと「BlackBerry」で始まるユーザーエージェントだったのに、「Mozilla」で始まるAndroidそっくりのユーザーエージェントに変わった。
バージョンが取りにくいやん!
機種名に半角スペースとか入ってるし!
Ver6.0からは今までと違うぞって主張したいのか?

BlackBerry8707/4.2.2 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/220
BlackBerry9000/4.6.0.224 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/220
BlackBerry9700/5.0.0.743 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/220
BlackBerry9300/5.0.0.1007 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/220
Mozilla/5.0 (BlackBerry; U; BlackBerry 9780; ja) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.587 Mobile Safari/534.8+

従来のBlackBerryとBlackBerry9780の機種名及びOSバージョンを取得するには、↓こんな感じだろうか?

if ( $ENV{HTTP_USER_AGENT} =~ m{^(BlackBerry[^/]+)/(\S+)}i 
 or $ENV{HTTP_USER_AGENT} =~ m{; (BlackBerry ?[^;]+); .+ Version/(\S+) }i )
{
    print "BlackBerry\n";
    print 'device = [', $1, "]\n",
        'version = [', $2, "]\n";
}

もっと良い取得方法があったら教えてください。


【2011-07-14追記】

Xperia acro(SO-02C)

※SonyEricssonが付いたり付かなかったり

Mozilla/5.0 (Linux; U; Android 2.3.3; ja-jp; SonyEricssonSO-02C Build/3.0.1.F.0.126) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Mozilla/5.0 (Linux; U; Android 2.3.3; ja-jp; SO-02C Build/3.0.1.F.0.126) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1

コメント欄にある通り、最初、SO-02CとSC-02Cを同じものと間違えて「『SonyEricsson』が付いたり付かなかったりするよ」などと言って滝汗をかきましたが、その後もログを見ていたところ、「SonyEricssonSO-02C」と「SO-02C」両方の存在を確認しました。
どちらもリモートホストは**.spmode.ne.jpです。

どんな条件で「SonyEricsson」が付いたり付かなかったりするのかはわかりません。
これは、SO-01B(Xperia),SO-01C(Xperia arc)でも確認しています。