このエントリーをはてなブックマークに追加
スポンサーリンク

2016年1月25日 モバイルだけしかアクセスできなくするテスト

単にRubyの勉強をするといっても、何の目標もなく、何の目的もなく、ただ漠然とやったって覚えられるわけがない。したがって、何か目的を持つ事にした。

目的
廃止したモバイル用ページ(http:aufheben.mobi)をRubyで復活させる。(従来はPHP)

目標
1年以内

という事は、まずはRubyでユーザーエージェントを取得する必要がある。モバイル端末以外はノーサポートページに飛ばしたいからだ。

Rubyでユーザーエージェントを取得するにはどうすれば良いか。Googleで検索したところ、一番上にヒットしたサイトの情報では、request.env["HTTP_USER_AGENT"]とから取得するとあったので、
user_agent = request.env["HTTP_USER_AGENT"]
としたら、
undefined local variable or method `request'
というエラーが出て動かない。

そりゃ、requestなんてどこにも定義されてないのにいきなり使えるわけないわな。じゃあ、どうすれば使えるのかというと、そのページには書いてない。いうまでもないので書かなないって事か。困ったな。っていうか意味もわからずコピペするからだ。

さらに下の方まで調べたらENV["HTTP_USER_AGENT"]という記載があったので、
user_agent = ENV["HTTP_USER_AGENT"]
と書き直したら動いた。

あとは正規表現でスマホ以外はノーサポートページにリダイレクトするように作れば良いわけだ。

・iPhoneという文字がある
・iPodという文字がある
・iPadという文字がある
・Androidという文字がある
・Windows Phone という文字がある

今のところこんなところか。後で例外の機種が出てくるかもしれんが、まあその時はその時で。なお、エミュレーターやユーザーエージェント詐称でPCで見られてしまう場合もあるが、べつにそんなに絶対にPCで見られたらマズいわけでもないし、むしろ自分がデバッグするのにユーザーエージェント詐称が通用した方が都合が良いので、それ以上の判断はしない。

というか、携帯だと個体識別番号とかでもっと厳密に制限できたんでしょうけど、スマホはある意味PCと同じなので、おそらくユーザーエージェントぐらいしか判別する方法はなかろう。

というわけで、今回はここまで。

ここを参考にしました。
http://weback.net/mobile/2114/


 △先頭へ  コメント(0)  トラックバック(0)  拍手(0)

コメント一覧
この記事へのコメントはありません。

コメント送信

お名前
コメント
左の画像のキーワードを入れてください

トラックバック
この記事のトラックバックPing URL


この記事へのトラックバックはありません。

スポンサーリンク