携帯ブラウザのユーザーエージェント(User-Agent)による機種判別、キャリア判別

2005-10-25 - 2009-12-17
ドコモ、au、ソフトバンクの携帯ブラウザのユーザーエージェントによる機種判別、キャリア判別。



携帯ブラウザのユーザーエージェント

  1. ユーザーエージェントについて
    ドコモ、au、ソフトバンクの各携帯電話のブラウザのユーザーエージェントは、パソコンのブラウザと同様にプログラムで取得することができます。
    ユーザーエージェントを利用してキャリアの判別や機種判別を行うことができます。

    ユーザーエージェントには、ドコモなら「DoCoMo」、au・TU-KAなら「UP.Browser」、ソフトバンクなら「J-PHONE」、「Vodafone」、「SoftBank」という文字列が含まれています。
    これらの文字列を調べることで携帯電話のキャリアを判別することができます。
    ただし、Vodafoneの一部の機種は、「UP.Browser」という文字列がユーザーエージェントの途中に含まれています。
    キャリアを判別する場合は、「ユーザーエージェントの先頭の文字が何で始まるか」で判別した方が良いと思います。


    また、ユーザーエージェントには機種名の文字列が含まれているので、機種の判別を行うことができ、それを用いてページの表示やダウンロードさせるものを機種ごとに分けることができます。

    自分の携帯電話のユーザーエージェントや個体識別情報を確認したい場合は、以下のページをご利用下さい。
    2次元バーコードからアクセスできます。

    http://testpage.jp/m/tool/uid_utn_ip_host.php?guid=ON
  2. ユーザーエージェントのサンプル
    ユーザーエージェントは、機種ごとにたくさんありますが、書き方のパターンは以下のどれかに当てはまります。
    詳細は、各キャリア公式サイトを参照。
    • ドコモの例
      • タイプ1(MOVA)
        DoCoMo/1.0/N503i/c10
        個体識別情報を得た場合は、
        DoCoMo/1.0/N503i/c10/ser12345678901

        タイプ2(FOMA)
        DoCoMo/2.0 N901iS(c100;TB;W24H12)
        個体識別情報を得た場合は、
        DoCoMo/2.0 N901iS(c100;TB;W24H12;ser123456789012345;icc12345678901234567890)

        P-07A のユーザーエージェント
        DoCoMo/2.0 P07A3(c500;TB;W24H15)
        ドコモ端末のユーザーエージェント
      • /c10や(c100)が付かず、機種名で終わる場合もある。
      • 個体識別情報は、個体識別情報を参照。
      • iモードブラウザ2.0 かどうかを見分けるには、キャッシュが500(c500)であるかを調べるしか方法がない。
    • auの例
      • 旧タイプ
        UP.Browser/3.04-SN12 UP.Link/3.4.4
        新タイプ
        KDDI-HI21 UP.Browser/6.0.2.254 (GUI) MMP/1.1
      • 機種の名称は、デバイスID(デバイスタイプ)と呼ばれる名称で表記されている。
        上の例だと、SN12やHI21がデバイスID。
        デバイスIDと製品名の対応表は、キャリアのサイトにあります。
        デバイスIDを機種名に直したい場合は、変換処理を自作するか、ライブラリを探すしかありません。
        機種名をデバイスIDで表現するのは、auの仕様です。
        機種名を直接取得する方法はありません。
    • ソフトバンクの例
      • SoftBank 4-2 Series(Jフォン時代のもの)
        J-PHONE/3.0/J-SH07
        SoftBank 6-5 Series(Jフォン時代のもの)
        J-PHONE/4.0/J-SH51/SN12345678901 SH/0001a Profile/MIDP-1.0 Configuration/CLDC-1.0
        SoftBank 3G Series(ボーダフォン時代のもの)
        Vodafone/1.0/V904SH/SHJ001/SN123456789012345 Browser/VF-NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1
        SoftBank 3G Series(ソフトバンク時代のもの)
        SoftBank/1.0/910T/TJ001/SN123456789012345 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1
      • 基本的に、J-PHONE(or Vodafone or SoftBank)/ブラウザバージョン/機種名/その他、という構成になっています。
  3. IP帯域
    パソコンのブラウザには、任意のユーザーエージェントを設定できるものがあります。
    ユーザーエージェントを携帯電話と同じものにして携帯サイトへアクセスするユーザーがいることも予想されます。
    完璧にパソコンからのアクセスを防ぐには、.htaccessなどで携帯電話で使用されているIPアドレスの帯域を指定し、パソコンからのアクセスを防ぎます。
    各キャリアが使用しているIPの帯域は、公式サイトで公開されています。
  4. ホスト名
    ユーザーエージェントは、偽装できてもリモートのホスト名は、偽装できません。
    ユーザーエージェントの他にホスト名もサイトの判別に入れれば、より判別の精度が高くなります。
    • ドコモ
      • docomo.ne.jp
    • au
      • ezweb.ne.jp
    • ソフトバンク
      • jp-d.ne.jp
        jp-h.ne.jp
        jp-t.ne.jp
        jp-c.ne.jp
        jp-k.ne.jp
        jp-r.ne.jp
        jp-n.ne.jp
        jp-s.ne.jp
        jp-q.ne.jp
      • jp-t などのアドレスは、Jフォン東京などの名残。


キャリア判別のサンプルソース



機種判別のサンプルソース(機種名を取得する)