«前の日記(2010-06-21) 最新 次の日記(2010-06-24)» 編集

meta's blog - The Power To Serve

筆者について

FreeBSDを通じてOSSにささかな貢献を。

OSS活動をご支援いただける方を募集しています


2010-06-23 IPサイマルラジオ放送 radiko.jp

iPhoneアプリ「ラジ朗」で radiko.jp を地域外で聴く方法

IPアドレスベースで聴取地域制限を行っているradikoですが、iPhoneの3G回線ではすべて東京と判定されるというのは前述した通りです。

このため、iPhoneの3G回線でradikoを聴取するにはちょっとした壁があります。radiko公式アプリではGPSによる地域判定が必要だったり、ラジ朗ではWi-Fi回線での聴取のみに制限されていたりという制限があります。

今回はJailbreak済みのiPhone向けに、ラジ朗を使って地域外でradikoを聴取する方法を紹介します。

iPhoneのルーティングテーブルを弄るという方法で地域外での聴取を実現しますが、聴取にはWi-Fi接続を必要とします。root権限のTerminalを起動し、以下のコマンドを打ちます。

route add -net 210.172.41.80/28 -interface pdp_ip0
route add -net 219.103.32.110 -interface pdp_ip0

上記のようなルーティングテーブルを追加することで、Wi-Fi回線が繋がっていてもradikoのサーバへの通信は常に3G回線を経由するようになります。

ラジ朗はWi-Fiが有効でない状態ではGPSによる地域判定を要求し、Wi-Fiが有効な状態ではWi-Fi回線のIPアドレスにより地域判定が行われます。しかし通信を3G回線で行っているかWi-Fiで行っているか、という判定はインターフェイスがUPかどうかしか見ておらず実際にどちらの回線で通信しているかは関係ありません。通常Wi-Fi回線が有効な場合は(MMSなどを除く)すべての通信がWi-Fiを経由するのですが、radikoサーバへの通信は3G回線を経由するというルーティングテーブルを追加することでラジ朗にはWi-Fi回線で通信していると判定され、実際には3G回線(常に東京判定)なのでradikoを聴取することができるというからくりです。

Jailbreak状態で地域外でradikoを聴くには3G UnrestricterやFakeLocationを使用するという方法がありますが、どちらも有料のアプリケーションです。ルーティングテーブルを追加するという方法では条件が限られますがOS標準の機能のみで実現できます。

今回の方法でradikoを聴取するための条件:

  • Wi-Fi回線が使用できる
  • 3G回線が使用できる(圏外だがWi-Fiのみつながるという場所ではNG)
  • Jailbreak済み

つまり、radikoの聴取地域外でWi-Fiのない屋外を移動しながらという場合にはこの方法は使用できません。聴取地域外で自宅やマクドナルドのWi-Fi回線を使って移動せずに聴くという限られた条件でのみ有効です。前者の場合には3G UnrestricterやFakeLocationが有効です。

また、このルーティングテーブルを追加したままでは現在地に関係なくradikoサーバへの通信を常に3G回線経由で行うので、東京に出張してWi-Fiでradikoを聞くという場合には以下のコマンドでルーティングテーブルを削除しないとバッテリーの消費が激しくなるので注意が必要です。

route delete -net 210.172.41.80/28
route delete -net 219.103.32.110
本日のツッコミ(全1件) [ツッコミを入れる]
Σ 深淵 (2011-08-14 03:43)

root権限でterminalを起動させるにはどうすればよいですか?<br>何卒ご教授よろしくお願いします。