[ruby][rails]Softbank対応(たぶん)携帯キャリア判別クラス
PerlとPHPを参考に。
こんな感じですかね。帰ってくる文字列はまだVodafone名ですが(Softbankに変更すべき?)。
class MobileDetect DocomoReg = %rVodafoneReg = %r<(?:(?:Softbank|Vodafone|J-PHONE)/\d\.\d|MOT-)> EzwebReg = %r<^(?:KDDI-[A-Z]+\d+[A-Z]? )?UP\.Browser\/> AirhReg = %r<^Mozilla/3\.0\*1> def self.detect(user_agent) if MobileReg =~ user_agent return 'DoCoMo' if $1 return 'Vodafone' if $2 return 'EZweb' if $3 return 'Airh' if $4 end return nil end end if __FILE__ == $0 p MobileDetect.detect('DoCoMo/1.0/D501i') p MobileDetect.detect('DoCoMo/2.0 N2002(c100)') p MobileDetect.detect('DoCoMo/2.0 P2002(c100)') p MobileDetect.detect('DoCoMo/1.0/D504i/c10/TJ') p MobileDetect.detect('DoCoMo/1.0/F671iS/c10/TB') p MobileDetect.detect('DoCoMo/2.0 N2001(c10;ser0123456789abcde;icc01234567890123456789)') p MobileDetect.detect('J-PHONE/4.0/J-SH51/SNJSHA3029293 SH/0001aa Profile/MIDP-1.0 Configuration/CLDC-1.0 Ext-Profile/JSCL-1.1.0') end