#!/usr/bin/perl # フラッシュ対応携帯電話判別スクリプト(平成18年12月17日更新)。 # 平成18年12月17日 さいたま・しらぎくさいと # (c)2006 Marguerite Site, Saitama, Japan. # www.marguerite.jp #パラメータの読みこみ $i=$ENV{'QUERY_STRING'}; foreach $i (split(/[&;]/,$i)) { ($i,$j)=split(/=/,$i); $j=~tr/+/ /; $j=~s/%([a-fA-F0-9][a-fA-F0-9])/pack("H2",$1)/eg; if (!($j=~m|\Ahttps?://|)) { $j="http://$j"; } if ($i eq "f") { $flash=$j; next; } if ($i eq "a") { $alt=$j; next; } } #フラッシュ対応か? $flash_OK=0; $flash_OK=1 if $ENV{'HTTP_ACCEPT'}=~m|/x-shockwave-flash|; #ドコモは上記の方法ではチェック出来ない。 if (($i=$ENV{'HTTP_USER_AGENT'})=~s|\ADoCoMo/(\d+)\.\d+|| && $i=~/[;\/]TB[;\/]/) { if ($1==1) { #MOVA $flash_OK=1 if ($i=~m|\A/[A-Z]+(\d+)| && ($1==505 || $1==506)); } else { #FOMA if ($i=~m|\A\s([A-Z]+(\d+))|) { $flash_OK=1 if $2<2000; $flash_OK=0 if $1 eq 'L601' || index('^600^672^850^880^881^',"^$2^")>-1; } } } #フラッシュ対応ならフラッシュの配信。 if ($flash_OK) { print "location: $flash\n\n"; exit; } #非対応環境への代替コンテンツ配信。 print "location: $alt\n\n"; exit; exit;