Lorsque lappareil tente de se connecter à un point daccès ou à un routeur, il doit se connecter sur la page du portail captif avec le message disant
« Connectez-vous au réseau Wi-Fi ».
Comment fonctionne le point daccès / routeur identifier quune connexion est requise pour lappareil et quel est le processus derrière celui-ci?
Réponse
LURL de détection diffère entre différentes versions dAndroid.
Pour Marshmallow, il utilise connectivitécheck.gstatic.com/generate_204, vérifiez le code ici AndroidXRef – Marshmallow 6.0.0_r1
Pour Kitkat, il utilise clients3.google.com/generate_204 vérifier le code AndroidXRef – KitKat 4.4.4_r1
Commentaires
Réponse
Cette technologie sappelle « Portail captif ». Il existe plusieurs implémentations. Comme je le sais, Android essaie datteindre un fichier nommé generate_204
sur lun des serveurs Google et si ce nest pas possible, une notification est générée.
Lectures complémentaires sur Wikipedia: Captive_portal
Commentaires
- En fait, je connais le portail captif. Mais je connais lURL spécifique pour le vérifier. Je veux savoir comment ça marche. Pas ce que cest.
- Que voulez-vous dire – " comment ça marche "? Android envoie une demande et sil ny a pas de réponse positive, cela signifie quil ny a pas de connexion à Internet et quune notification est générée. Cest ' comment cela fonctionne.
- Quelle est lURL spécifique sur laquelle Android demande. Jai mentionné en question.
- Dans votre commentaire précédent, vous avez dit que vous connaissez lURL spécifique. Je pense que ' s
https://www.gstatic.com/generate_204
- LURL semble être clients3.google.com/generate_204 . Informations tirées de ce site pour le chrome qui sont probablement les mêmes pour Android. chromium.org/chromium-os/chromiumos-design-docs/…
Réponse
Un portail captif est généralement implémenté en dirigeant tout le trafic vers une réponse HTTP valide (200). Cette réponse HTTP est ce qui apparaît dans le portail captif.
Cela peut être fait avec des outils comme iptables ou dnsmasq.
http://connectivitycheck.gstatic.com/generate_204
renvoie en fait un 204 sans contenu, et fonctionne évidemment. Peut-être que vous venez doublier len-têteContent-Length: 0
.