web-dev-qa-db-fra.com

Portails captifs: le guide définitif

Je mettant en œuvre manuellement un portail captif WiFi. J'ai tout ce qui fonctionne à peu près, mais un seul attelage: je veux que tout le monde ait vue de leur portail captif (ou de l'ORSO "de l'ordinateur mobile) pour une expérience impeccable.

Étant donné que chacun d'entre eux a sa propre manière tordue de le faire, je suis apparemment incapable d'obtenir une expérience de plate-forme croisée cohérente.

Pour que cela se produise, puis-je avoir une aide pour décrire (1) quelles demandes d'URL à partir de clients WiFi doivent être redirigées vers une page de connexion et/ou (2) de la configuration de serveur Web NGinx ou Apache peut être utilisée pour rediriger WiFi. clients à une page de connexion?

Ma page de connexion de portail captif dans cet exemple est http: //captiveportal.lan . Voici quelques-uns des systèmes d'exploitation que j'essaie de résoudre ce problème pour.


Android 4/5/6

  • Apache:
    [.____] RedirectMatch 302 /generate_204 http://captiveportal.lan
  • nginx :?

Précédent Android Versions

  • Apache:?
  • nginx :?

iOS 8

  • Apache .htaccess:
    [.____] RewriteEngine on
    RewriteCond %{HTTP_USER_AGENT} ^CaptiveNetworkSupport(.*)$ [NC]
    RewriteRule ^(.*)$ http://captiveportal.lan [L,R=302]

  • nginx :?

Versions IOS précédentes

  • Apache:?
  • nginx :?


téléphone Windows

  • Apache:
    [.____] RedirectMatch 302 /ncsi.txt http://captiveportal.lan
  • nginx :?


[.____] Windows 7\8\10

  • Apache: Voir Windows Phone (Works sur Win7).
  • nginx :?

Mac OS

  • Apache:?
  • nginx :?

Amazon Kindle - a-t-il une popup ?

  • Apache:?
  • nginx :?
13
ppparadox

Tous les OS mobile il suffit de cocher une page Web pour décider si elles sont derrière un portail captif ou non.

Le mécanisme est le suivant:

  1. GET/POST http://foo.com/bar.html
  2. Si bar.html == [contenu prévu]> Ouvrez Internet
  3. Si bar.html! = [Contenu prévu]> Captive Portal
  4. Si bar.html [état]! = Succès> Réseau Non

En outre, pour iOS, vous devez avoir un domaine pour votre réseau WiFi car il suppose un réseau sans L'accès est sans domaine un réseau domestique et marques seulement en tant que Aucun réseau au lieu de Captive Portal.

Assurez-vous de rediriger explicitement les urls suivantes à votre portail captif avec HTTP succès:

Android/Chromebook:

  • clients3.google.com

iOS 6:

  • gsp1.Apple.com
  • * .akamaitechnologies.com

iOS 7:

  • www.appleiphonecell.com
  • www.airport.us
  • * .Apple.com.edgekey.net
  • * .akamaiedge.net
  • * .akamaitechnologies.com

iOS 8/9:

Les fenêtres

  • ipv6.msftncsi.com
  • www.msftncsi.com

De nombreux fournisseurs ont également commencé à utiliser l'agent utilisateur " CaptiveNetworkSupport ", bien que ce n'est pas aussi commun que la méthode URL ci-dessus. Il suffit de vérifier que l'agriculture urbaine et de donner toujours votre page portail ... ne fonctionne pas à 100% cependant.

J'utilise la méthode URL et il fonctionnait très bien.

6
hdezela

Amazon Kindle (Fire)

L'Amazon Kindle (Fire) fait la demande suivante, et s'il ne peut pas être récupéré "... Il suppose que l'utilisateur doit se connecter et jette un écran de connexion.":

iOS 8.4

Pour les dernières iOS, je devais faire correspondre toutes les URI pour les demandes à http://captive.apple.com - pas seulement "/hotspot-detect.html".

iOS 8.4 Les clients font des demandes avec URIS généré au hasard (par exemple "/xmqpyzuv/3r8jtjv8.html" et "/7exn0tv7q0cox0/bgbw7iyu2w0o/bgbw7iyu2dvbh1/svblx8iyztttte.html") dans les demandes d'URL aux domaines suivants pour détecter un portail captif:

3
Russell E Glaue