UAからドコモの機種を判別する正規表現

ドコモ端末向けの自作プログラムを作っている際に、端末の種類毎に処理を分岐する必要が出てきました。そこでドコモが公開している情報を元に、iモードでアクセスされた際に取得できる環境変数 HTTP_USER_AGENT から端末の機種(型番)を取得する正規表現を考えてみました。

my $env = $ENV{HTTP_USER_AGENT};
my($type) = $env =~ m|^DoCoMo\/[\.\d]+\W*(?:(?:MST_v_))?(\w+).*?$|i;

print "機種は $type です";

大半の機種は簡単な正規表現で対応できるんですけど、『SH2101V』って機種が特殊なUAを返すようなので”MST_v_”云々のロジックはその対応の為に入れてます。

なお、ドコモの公開情報によると『D2101V』などのUAに全角スペースが含まれるみたいですけど本当かしらん?それとも誤植?

    この記事へのコメント

    メールアドレスが公開されることはありません。

    頂戴したコメントは管理者に承認されるまで表示されません。