2012-05-01 5 views
0

iOSのWebアプリケーションは、インターネットに接続していないネットワーク上のローカルWebサーバーからアクセスする予定です。iOSにインターネット接続があると信じさせる方法

私の問題は、iOSデバイスがロックされるたびにWiFiネットワークから切断されるため、デバイスが再びロック解除されたときに再接続する必要があるということです。その再接続プロセスの一部は、インターネット接続が存在するかどうかを判断することです(存在しない場合)。プロセスが完了しない限り、iOSはDNS解決を許可しません(したがって、http://10.0.0.1と書いてもそこには入りますが、私がhttp://something.local.comを要求した場合は表示されません)。

私たちはそのネットワークを制御しているので、私たちはiOSがインターネット接続を検証する方法を知りたいので、期待される応答を偽ることができます。

+0

この質問はコードやコーディングツールの使用では答えられないため、私はそれを話題にならないようにし、サーバーの障害でよりよく尋ねます。 – Till

答えて

1

iOSでインターネットに接続しなくてもDNSを解決できるかどうかはわかりませんが、そうした場合は、ルータの設定を混乱させる必要がないため、より良い解決策になります。本当にコードだけでは不可能な場合にのみ私のソリューションを使用してください。
このガイドに従うことをお勧めします:http://blog.jerodsanto.net/2009/06/sniff-your-iphones-network-trafficあなたのiPhoneがインターネット接続を検出するために実行するアクションを確認してください。
この情報を使用して、ルータ上のis-there-internet-requestsをローカルのサーバに転送して、インターネットレスポンスを偽造することができます。
これは、Appleが実際にこれを検出するために外部サーバーを使用していることを前提としています。しかし、それを試して傷つけることはありません!

0

Reachability Classを見ましたか? reachabilityForInternetConnectionメソッドを使用する必要はありません。このメソッドは、デフォルトルートが使用可能かどうかを確認します。 reachabilityWithAddress:メソッドを使用して、サーバーが到達可能かどうかを確認できます。

関連する問題