NAME

phone.pl - 携帯電話からの環境変数を解析し、ハッシュへの参照を返す


SYNOPSIS

【携帯キャリアを判別した Location 飛ばし】

    require "phone.pl";
    my $phone = &phone_info();
    if ( $phone->{type} eq "docomo" ) {
        print "Location: http://domain.name/docomo/index.html\n\n";
    } elsif ( $phone->{type} eq "jphone" ) {
        print "Location: http://domain.name/softbank/index.html\n\n";
    } elsif ( $phone->{type} eq "ezweb" ) {
        print "Location: http://domain.name/au/index.html\n\n";
    } else {
        print "Location: http://domain.name/pc/index.html\n\n";
    }


DESCRIPTION

携帯電話からのアクセスを受け付けるCGI向けに、携帯電話に関する環境変数を 解析して、使いやすい形のハッシュを作成し、その参照を返します。 ここでは、以下の手順でハッシュを取得するものとします。

    require "phone.pl";
    my $phone = &phone_info();

携帯電話会社の判別には、type プロパティを利用します。

    $phone->{type}  ⇒  携帯電話会社(キャリア)

携帯3キャリアの type プロパティの値は以下のようになります。

        "docomo"    ⇒  NTT DoCoMo
        "jphone"    ⇒  SoftBank
        "ezweb"     ⇒  au・TU-KA
        ""          ⇒  PC(値は空です)

過去の phone.pl との互換のため、SoftBank は ``jphone'' と判別します。 type プロパティ以外に参照できる値は、以下の通りです。

    <端末情報系>
    $phone->{name}          ⇒  携帯機種名(商品名など)
    $phone->{code}          ⇒  携帯機種名(製品コードなど)
    $phone->{color}         ⇒  カラー表示対応(カラー=真、白黒=偽)
    $phone->{ver}           ⇒  バージョン情報
    $phone->{cache}         ⇒  キャッシュ容量(バイト単位)
    $phone->{qvga}          ⇒  QVGA液晶搭載機種(QVGA=真)
    $phone->{width}         ⇒  ディスプレイサイズ横幅(ピクセル単位)
    $phone->{height}        ⇒  ディスプレイサイズ縦幅(ピクセル単位)

以下のプロパティは、対応機種であれば真となります。(ezmovieを除く)

    <画像表示系>
    $phone->{image_jpeg}    ⇒  JPEG画像
    $phone->{image_png}     ⇒  PNG画像
    $phone->{image_gif}     ⇒  GIF画像
    $phone->{image_bmp}     ⇒  BMP画像
    <音声再生系>
    $phone->{audio_mmf}     ⇒  着メロ .mmf (SMAF)
    $phone->{audio_pmd}     ⇒  着メロ .pmd
    $phone->{audio_smd}     ⇒  着メロ .smd
    $phone->{audio_mld}     ⇒  着メロ .mld
    $phone->{audio_qcp}     ⇒  着ボイス .qcp (EZ)
    <動画再生系>
    $phone->{movie_amc}     ⇒  EZムービー AMC(.amc)
    $phone->{movie_3g2}     ⇒  EZムービー 3GPP2(.3g2)
    <NTT DoCoMo専用>
    $phone->{docomo_foma}   ⇒  NTT DoCoMo FOMA端末
    $phone->{docomo_pdc}    ⇒  NTT DoCoMo PDC端末
    <SoftBank専用>
    $phone->{vodafone_2g}   ⇒  SoftBank PDC端末
    $phone->{vodafone_3g}   ⇒  SoftBank 3G端末
    $phone->{disable_post}  ⇒  method="post" 使用不可
    <au 専用>
    $phone->{ezweb_mono}    ⇒  au 白黒HDML端末(C300系。1.4KB)
    $phone->{hdml_native}   ⇒  au HDML端末(C300〜A10xx系)
    $phone->{xhtml_native}  ⇒  au XHTML端末(A110x系〜、WIN)
    $phone->{ezmovie}       ⇒  EZムービー対応状況(0〜9)

機種によっては、ディスプレイサイズやキャッシュ容量などを正確に 取得できない場合もあります。(その場合は値は偽となります) また、制限がありますが UID(携帯端末固有記号)を取得できます。

    $phone->{uid}           ⇒  UID(携帯端末固有記号)

ただし、iモード機では公式サイトのドメイン下でのみ取得可能、 SoftBank 機では、公式サイトの pid・sid 利用時のみ取得可能、 au 機種では、公式/勝手サイト問わず取得可能です。 なお、UIDは詐称可能のため、より厳密に固体判別を行うためには GWセンタIPアドレスによるアクセス制限の併用が必要です。


COMMENT

phone.pl はご自由にお使いください。 ご意見・バグ情報などお待ちしております。


VERSIONS

    Version 1.01 (2000/05/11) 最初のバージョン
    Version 1.02 (2000/05/12) ezWeb 商品名変換対応、DoCoMo バグフィックス
    Version 1.03 (2001/02/19) DoCoMo 機種名は i まで付ける
    Version 1.04 (2001/04/05) DoCoMo 最新機種対応、アステル対応
    Version 1.10 (2002/03/25) au 最新機種対応、ファイルタイプ実験対応
    Version 1.11 (2002/04/26) DoCoMo 着メロ機種判別対応
    Version 1.12 (2002/05/07) DoCoMo FOMA、au 新機種、TK11・C313K 着メロ対応
    Version 1.13 (2002/09/30) au 新機種、audio/vnd.qcelp 着メロ対応
    Version 1.14 (2002/10/08) au 自動判別方式改良
    Version 1.15 (2002/11/04) au 新機種対応(SA22→A3015SA)
    Version 1.17 (2002/11/27) au 新機種対応(A5303H/A5302CA/TT22)
    Version 1.18 (2002/11/28) hdml_native/xhtml_native/disable_post
    Version 1.19 (2002/11/28) hdml_native/xhtml_native 修正
    Version 1.20 (2002/12/06) au 新機種対応(A1101S/TK21/TK22)、TK03 はMMF対応
    Version 1.21 (2003/04/16) au 新機種対応(A1301S/A1302SA/TK31/TS31)
    Version 1.22 (2003/04/17) au 新機種対応(TK23/A5402ST)。A5402ST は推測
    Version 1.30 (2003/05/02) uid 取得可能(制限あり)
    Version 1.32 (2003/06/10) DDI Pocket AirH" Phone対応(AH-J3001V/AH-J3002V)
                              au 新機種対応(A5402S/A5401CA/A5306ST/A5305K)
                              (A5402ST は誤りで、正しくは A5306ST でした)
    Version 1.33 (2003/07/01) DOCOMO_GLAY バグ修正(今頃?)
    Version 1.34 (2003/08/01) au 新機種対応(A5303H-II/A1304T/TT31)
    Version 1.35 (2003/08/17) au 新機種対応(A1401K/A1303SA)
                              au 小容量白黒機種自動判別追加(ezweb_mono)
                              au 地域会社自動判別追加 (ezweb_area)
                              DoCoMo (docomo_foma docomo_pdc docomo_phs)追加
    Version 1.36 (2003/09/17) au 新機種対応 (A5307ST/A5501T/W11H)
    Version 1.37 (2003/10/23) DoCoMo JPEG 判別対応(image_jpeg)
                              au 機種名変更(A5307ST⇒INFOBAR)
    Version 1.38 (2003/10/26) DoCoMo 着ボイス非対応機種判別(docomo_voice)
    Version 1.39 (2004/02/06) DoCoMo 900i シリーズ対応
    Version 1.40 (2004/02/13) au/TU-KA 新機種対応(W11K他)
    Version 1.41 (2004/03/08) DoCoMo 拡張絵文字非対応機種判別(docomo_std_emoji)
    Version 1.42 (2004/03/16) au/TU-KA 新機種対応(A5405SA他)
    Version 1.43 (2004/06/29) DoCoMo ディスプレイサイズ判別追加
                              (3キャリア全て取得可能:width:height)
                              au/TU-KA 新機種対応(A5506T他)
    Version 1.44 (2004/07/26) DoCoMo QVGA 新機種対応(F880iES他)
    Version 1.45 (2004/09/17) DOCOMO_QVGA 更新
    Version 1.46 (2004/09/28) au/TU-KA 新機種対応(A5504T、A1305SA他)
    Version 1.47 (2004/10/19) iモードHTMLシミュレータIIもQVGA対応
    Version 1.48 (2004/11/09) EZムービー ezmovie、movie_amc、movie_3g2
    Version 1.49 (2004/12/01) QVGA機種の横幅は240ピクセル、EZ新機種対応
    Version 1.50 (2004/12/22) iモードHTMLシミュレータ7.0は16ビットフォント換算
    Version 1.51 (2005/01/05) ドコモ700iシリーズ対応
    Version 1.52 (2005/01/17) Vodafone キャッシュ容量判定変更、W21CA対応
    Version 1.53 (2005/01/26) Vodafone V902SH他、新3G携帯対応
    Version 1.54 (2005/01/26) Vodafone 702MO 対応(MOT-V980)
    Version 1.55 (2005/01/31) Vodafone バージョン番号判定バグ修正
    Version 1.56 (2005/02/02) Vodafone 3G携帯は 300KBキャッシュとみなす
    Version 1.57 (2005/02/18) au 新機種対応(W31SA)
    Version 1.58 (2005/03/22) au/TU-KA 新機種対応(PENCK/TT51)
    Version 1.59 (2005/03/28) au 新機種対応(W31K/W31S)
    Version 1.60 (2005/03/30) au 判別バグ修正(W31K/W31S)、POD更新
    Version 1.61 (2005/06/04) au 新機種対応(Sweets)
    Version 1.62 (2005/06/18) 動画対応機種判別(Thanks to MIZUNOTOMOAKI)
    Version 1.63 (2005/06/20) movie_3g2 判別条件修正
    Version 1.64 (2005/09/03) SO213iS 判別修正、SH851i 対応、au 新機種対応
    Version 1.65 (2005/09/27) au 新機種対応(Thanks to IIJIMA)
    Version 1.66 (2006/02/21) au 新機種対応(W41K/Sweets pure他)
    Version 1.67 (2006/03/10) au 新機種対応(neon)
    Version 1.68 (2006/11/05) SoftBank 対応/au 新機種対応
    Version 1.69 (2006/12/12) HTTP_X_UP_DEVCAP_MULTIMEDIA 16進数対応
    Version 1.70 (2007/07/04) au 新機種対応(W53SA/Sweets cute他)
    Version 1.71 (2007/12/23) au 新機種対応(W55T/INFOBAR 2他)


SEE ALSO

    http://www.kawa.net/works/perl/phone/pnews.html
    http://www.nttdocomo.co.jp/service/imode/make/content/spec/index.html
    http://www.au.kddi.com/ezfactory/tec/spec/4_4.html
    http://developers.softbankmobile.co.jp/dp/tool_dl/web/useragent.php


AUTHOR

Copyright 2000-2007 Kawasaki Yusuke <u-suke [at] kawa.net>