ios7 では、wifi に接続した後にデバイスがインターネットに接続されているかどうかを確認するためにリクエストを送信する URL が変更されたようです (さらに悪いことに!)。
iOS6以前では、リクエストは次のとおりでした:
GET /library/test/success.html HTTP/1.0
Host: www.apple.com
User-Agent: CaptiveNetworkSupport/1.0 wispr
Connection: close
(ソース)
しかし、現在 ios7 では、「最大 200」にアクセスできます ( ciscoによると)。
これを自分でテストしたところ、リクエストがランダムにappleiphonecell.com、captive.apple.com、airport.us、ibook.infoなどに送信されることを確認できました。
私の質問は、これらの URL の完全なリストを持っている人はいますか (Apple が所有するすべてのドメインだけかもしれません)。Wi-Fi でキャプティブ ポータルを実行していますが、Wi-Fi に接続した後に VPN に接続する必要があることをユーザーに知らせるためです。キャプティブ ポータルのログイン ページで [キャンセル] をクリックすると、[インターネットなしで使用] オプションが表示されることがあります。これにより、ユーザーは VPN に接続できるようになりますが、[キャンセル] をクリックしてもこのオプションが表示されず、単に接続が切断されることがあります。これは、ユーザーが VPN に接続できないことを意味します。
特定の URL (library/test/success.html) への応答を偽造する前に、wifi が接続されたままになります。アクセスできるサイトのリストがあれば、これをもう一度行うことができます。(または、毎回表示されない「インターネットなしで使用する」オプションを修正する ios7 の更新を待ちます)。可能であれば、今のところユーザーエージェントに基づいて行うことを検討していると思います。
ちょっとした更新ですが、UA は少なくとも「CaptiveNetworkSupport」が共通点であることに一貫性を保っているように見えるため、当面は UA チェックに変更します。