Il ressemble à ios7 l'URL à laquelle l'appareil envoie une demande pour vérifier s'il dispose d'une connexion Internet après la connexion au wifi a changé (pour le pire!).
dans ios6 et versions antérieures, la demande était:
GET /library/test/success.html HTTP/1.0
Host: www.Apple.com
User-Agent: CaptiveNetworkSupport/1.0 wispr
Connection: close
( source )
Mais maintenant, dans ios7, il peut accéder à 'jusqu'à 200' (selon Cisco ).
Après avoir testé cela moi-même, je peux confirmer les demandes au hasard sur appleiphonecell.com, captive.Apple.com, airport.us, ibook.info, entre autres.
Donc, ma question est: Quelqu'un a-t-il une liste complète de ces URL (peut-être que c'est chaque domaine Apple propre)? Nous exécutons un portail captif sur notre wifi, mais juste pour faire savoir aux utilisateurs dont ils ont besoin pour se connecter au VPN après la connexion au wifi. Cliquer sur "annuler" sur la page de connexion du portail captif présente parfois l'option "utiliser sans Internet" qui permettra alors à l'utilisateur de se connecter au VPN, mais parfois, cliquer sur "annuler" ne le fait pas ne donnez pas cette option, et déconnectez simplement la connexion wifi immédiatement, ce qui signifie que l'utilisateur ne peut pas se connecter au VPN.
Avant, nous pouvions simplement forger une réponse à l'URL spécifique (bibliothèque/test/success.html) qui laisserait alors le wifi connecté. Nous pouvons le faire à nouveau si nous avions une liste des sites auxquels il peut accéder, sinon nous pourrions avoir à revenir à la planche à dessin avec notre portail captif! (Ou attendez une mise à jour ios7 qui corrige l'option `` utiliser sans Internet '', qui n'apparaît pas à chaque fois). Pensez que nous examinerons la possibilité de faire en fonction de l'agent utilisateur pour l'instant si cela est possible.
La mise à jour modeste, on dirait que UA reste cohérent au moins avec 'CaptiveNetworkSupport' étant le dénominateur commun, nous allons donc passer à UA en vérifiant pour le moment.
Assez intéressant, www.appleiphonecell.com
et captive.Apple.com
les deux se résolvent actuellement en adresses Akamai.
~/ > 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
Mais airport.us
et ses amis se résolvent directement sur le réseau de classe A d'Apple .
~/ > Host airport.us
airport.us has address 17.149.160.87
airport.us has address 17.172.224.81
À partir de ces adresses IP, vous pouvez trouver de nombreux autres noms d'hôtes qui ont le même enregistrement PTR. Ajout du chemin /library/test/success.html
entraîne le plus souvent une réponse directe ou une redirection vers la même page sur le www.Apple.com
nom d'hôte.
~/ > 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.
Dans nos tests, il semblait que le CNA déclenche également des demandes avec non seulement "CaptiveNetworkSupport" mais un identifiant WebKit User-Agent commun. Avez-vous réussi à vérifier uniquement l'en-tête User-Agent pour CaptiveNetworkSupport?
C'est vraiment un gâchis.
Recherchez l'agent Userv "CaptiveNetworkSupport". J'ai testé cela sur mon serveur Web nginx et fonctionne parfaitement sur tous les appareils iOS.
if ($http_user_agent ~* (CaptiveNetworkSupport)) {
return 200;
}
Ajouter ceux dans
/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",
)
}
Testé sur iOS6 et iOS7
Une solution de contournement a été publiée sous la forme d'une configuration pour le serveur Lighttpd:
http://forum.daviddarts.com/read.php?9,8879
Cette solution de contournement est basée sur la vérification par UA de CaptiveNetworkSupport - bien que iOS essaiera également de charger les mêmes URL longues randomisées à partir du site Web Apple Apple en utilisant WebKit UA.