web-dev-qa-db-ja.com

ios7およびキャプティブポータル-AppleリクエストURLへの変更

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では、「 Cisco に従って」「最大200」にアクセスできます。

これを自分でテストして、リクエストがappleiphonecell.com、captive.Apple.com、airport.us、ibook.infoなどにランダムに送られることを確認できます。

だから私の質問は次のとおりです:誰かがこれらのURLの完全なリストを持っていますか(おそらくすべてのドメインApple所有)ですか?私たちはwifiでキャプティブポータルを実行しますWiFiに接続した後、VPNに接続します。キャプティブポータルのログインページで[キャンセル]をクリックすると、「インターネットなしで使用する」オプションが表示される場合があり、ユーザーはVPNに接続できますが、「キャンセル」このオプションを指定せずに、Wi-Fi接続をすぐに切断します。これは、ユーザーがVPNに接続できないことを意味します。

特定のURL(library/test/success.html)への応答を偽造する前に、wifiを接続したままにします。アクセスできるサイトのリストがあれば、これを再度行うことができます。そうでない場合は、キャプティブポータルで図面に戻る必要があります。 (または、毎回表示されない「インターネットなしで使用する」オプションを修正するios7アップデートをお待ちください)。可能であれば、今のところユーザーエージェントに基づいて行うことを検討すると思います。

Edit-weeの更新、UAは少なくとも「CaptiveNetworkSupport」が共通点であるため、一貫性が保たれているように見えるため、当面はUAチェックに変更します。

17
Goat Karma

興味深いことに、www.appleiphonecell.comcaptive.Apple.comは両方とも現在、アカマイのアドレスに解決されます。

~/ > Host captive.Apple.com
captive.Apple.com is an alias for captive.Apple.com.edgekey.net.
captive.Apple.com.edgekey.net is an alias for e7279.e9.akamaiedge.net.
e7279.e9.akamaiedge.net has address 23.212.87.91

しかし、airport.usおよび友人は、Appleの Class Aネットワーク に直接解決します。

~/ > Host airport.us
airport.us has address 17.149.160.87
airport.us has address 17.172.224.81

これらのIPアドレスから、同じPTRレコードを持つより多くのホスト名を見つけることができます。パス/library/test/success.htmlを追加すると、ほとんどの場合、www.Apple.comホスト名の同じページに直接応答またはリダイレクトされます。

~/ > Host 17.149.160.87
87.160.149.17.in-addr.arpa domain name pointer airport.us.
87.160.149.17.in-addr.arpa domain name pointer ibook.info.
87.160.149.17.in-addr.arpa domain name pointer macbookair.net.
87.160.149.17.in-addr.arpa domain name pointer Macintosh.me.
87.160.149.17.in-addr.arpa domain name pointer applecare.info.
87.160.149.17.in-addr.arpa domain name pointer Macintosh.info.
87.160.149.17.in-addr.arpa domain name pointer iTunes.info.
87.160.149.17.in-addr.arpa domain name pointer iTunes.us.
87.160.149.17.in-addr.arpa domain name pointer iPhoto.us.
87.160.149.17.in-addr.arpa domain name pointer applecare.us.
87.160.149.17.in-addr.arpa domain name pointer macbook.us.
87.160.149.17.in-addr.arpa domain name pointer itunesmobile.com.
87.160.149.17.in-addr.arpa domain name pointer iPod.us.
87.160.149.17.in-addr.arpa domain name pointer itunestelevision.com.
87.160.149.17.in-addr.arpa domain name pointer macosxversions.com.
87.160.149.17.in-addr.arpa domain name pointer iTunes.me.
87.160.149.17.in-addr.arpa domain name pointer itunesaircheck.com.
87.160.149.17.in-addr.arpa domain name pointer mac.us.
87.160.149.17.in-addr.arpa domain name pointer macbookair.us.
87.160.149.17.in-addr.arpa domain name pointer iPod.me.
87.160.149.17.in-addr.arpa domain name pointer applestore.info.
87.160.149.17.in-addr.arpa domain name pointer iphone.me.
87.160.149.17.in-addr.arpa domain name pointer osxlionlaunchpad.com.
87.160.149.17.in-addr.arpa domain name pointer macgestures.com.
87.160.149.17.in-addr.arpa domain name pointer macbookair.org.
87.160.149.17.in-addr.arpa domain name pointer mac.info.
87.160.149.17.in-addr.arpa domain name pointer macos.us.
87.160.149.17.in-addr.arpa domain name pointer myipod.net.
87.160.149.17.in-addr.arpa domain name pointer itunesu.net.
87.160.149.17.in-addr.arpa domain name pointer appleiphonecell.com.
87.160.149.17.in-addr.arpa domain name pointer firewire.us.
87.160.149.17.in-addr.arpa domain name pointer airport.info.
87.160.149.17.in-addr.arpa domain name pointer itunesparty.com.
87.160.149.17.in-addr.arpa domain name pointer applecomputer.info.
87.160.149.17.in-addr.arpa domain name pointer appletv.info.
87.160.149.17.in-addr.arpa domain name pointer applecomputers.us.
87.160.149.17.in-addr.arpa domain name pointer idvd.us.
87.160.149.17.in-addr.arpa domain name pointer osx.info.
87.160.149.17.in-addr.arpa domain name pointer macbookair.info.
87.160.149.17.in-addr.arpa domain name pointer itunesu.org.
87.160.149.17.in-addr.arpa domain name pointer itunesuniversity.com.
87.160.149.17.in-addr.arpa domain name pointer iMovie.us.
87.160.149.17.in-addr.arpa domain name pointer theapplestore.org.
87.160.149.17.in-addr.arpa domain name pointer macbookpro.org.
87.160.149.17.in-addr.arpa domain name pointer Apple.me.
87.160.149.17.in-addr.arpa domain name pointer itools.info.
87.160.149.17.in-addr.arpa domain name pointer thinkdifferent.us.
87.160.149.17.in-addr.arpa domain name pointer thinkdifferent.info.
87.160.149.17.in-addr.arpa domain name pointer Macintosh.us.
87.160.149.17.in-addr.arpa domain name pointer iPod.info.
87.160.149.17.in-addr.arpa domain name pointer applescript.us.
87.160.149.17.in-addr.arpa domain name pointer quicktime.info.
87.160.149.17.in-addr.arpa domain name pointer macosxlionairdrop.com.
87.160.149.17.in-addr.arpa domain name pointer itunesshow.com.
87.160.149.17.in-addr.arpa domain name pointer airtunes.net.
87.160.149.17.in-addr.arpa domain name pointer iPod.net.
87.160.149.17.in-addr.arpa domain name pointer macos.info.
87.160.149.17.in-addr.arpa domain name pointer iMac.info.
87.160.149.17.in-addr.arpa domain name pointer iMac.us.
87.160.149.17.in-addr.arpa domain name pointer appleiosv.com.
87.160.149.17.in-addr.arpa domain name pointer ipodnano.me.
7
Uriah Carpenter

テストでは、CNAは「CaptiveNetworkSupport」だけでなく、一般的なWebKit User-Agent識別子を使用してリクエストをトリガーするように見えました。 CaptiveNetworkSupportのUser-Agentヘッダーのみを実際にチェックできましたか?

これは本当に混乱です。

5
theeagermichael

Uservエージェント「CaptiveNetworkSupport」を確認してください。これをnginx Webサーバーでテストし、すべてのiOSデバイスで完全に動作します。

if ($http_user_agent ~* (CaptiveNetworkSupport)) {
            return 200;
        }
4
dev0z

それらを追加
/etc/lighttpd/lighttpd.conf

$HTTP["Host"] =~ "^(appleiphonecell.com|captive.Apple.com|www.itools.info|www.ibook.info|www.aiport.us|www.thinkdifferent.us|www.Apple.com)" {
    server.document-root    = "/www/library/test/"
    index-file.names        = ( "success.html" )                                
    dir-listing.activate    = "disable"                                         
    server.error-handler-404 = "/success.html"
    #accesslog.filename = "/var/log/lighttpd/Apple-access.log" 
    #server.errorlog = "/var/log/lighttpd/Apple-error.log"
    url.rewrite = (
        "^/(.*/)" => "/success.html",
    )
}

IOS6およびiOS7でテスト済み

2
Kope

回避策は、Lighttpdサーバーの構成の形式で投稿されています。

http://forum.daviddarts.com/read.php?9,8879

この回避策は、CaptiveNetworkSupportのUAチェックに基づいています-iOSは、WebKit UAを使用してApple Webサイトから同じ長いランダムURLをロードしようとしますが.

0
user2800645