[Ruby] User Agent(ユーザーエージェント)を取得する方法

Ruby にて、User Agent(ユーザーエージェント)を取得する方法を調べたのでメモ。

User Agent自体は、リクエストパラメータの中に含まれています。

iPhone のユーザーエージェントの例

request.env["HTTP_USER_AGENT"]
#=> Mozilla/5.0 (iPod; CPU iPhone OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3

User Agent を調べることにより、例えば iPhone や Android などのスマートフォンからのアクセスを、スマフォ専用のページにリダイレクトすることができたりします。

スマフォ専用サイトに転送するフィルターのサンプル (Ruby on Rails)

before_filter :check_user_agent_for_mobile
 
def check_user_agent_for_mobile
  ua = request.env["HTTP_USER_AGENT"]
  if(ua.include?('Mobile') || ua.include?('Android'))
    redirect_to  :controller => "mobile", :action  => "index"
  end
end

iPhone/iPad/iPod Touch には全て ‘Mobile’ という文字列が、Android端末には ‘Android’ の文字列がユーザーエージェントに含まれているので、このように書いてみました。

User Agent については下記のサイトに詳しくまとめられています。

userAgent一覧/ユーザーエージェント一覧

以上です。


参考情報

Android携帯、タブレットをUser Agentで区別するRubyの正規表現|WEBデザイン Tips