Cuando el dispositivo intenta conectarse a un punto de acceso o enrutador, debe iniciar sesión en la página del portal cautivo con el mensaje que dice
"Iniciar sesión en la red Wi-Fi".
¿Cómo identifica el punto de acceso/enrutador que se requiere un inicio de sesión para el dispositivo y cuál es el proceso detrás de esto?
La URL de detección difiere entre las diferentes versiones de Android.
Para Marshmallow, usa connectionscheck.gstatic.com/generate_204, revisa el código aquí AndroidXRef - Marshmallow 6.0.0_r1
Para Kitkat, usa clients3.google.com/generate_204 verifique el código AndroidXRef - KitKat 4.4.4_r1
Esta tecnología se llama "portal cautivo". Hay varias implementaciones. Como sé, Android intenta llegar a un archivo con nombre generate_204
en uno de los servidores de Google y, si no es posible, se genera una notificación.
Lectura adicional en Wikipedia: Captive_portal
https://www.gstatic.com/generate_204
Un portal cautivo generalmente se implementa dirigiendo todo el tráfico a una respuesta HTTP válida (200). Esta respuesta HTTP es lo que aparece en el portal cautivo.
Esto se puede hacer con herramientas como iptables o dnsmasq.
ubomb
Tamir Daniely
http://connectivitycheck.gstatic.com/generate_204
que en realidad devuelve un 204 sin contenido y obviamente funciona. Tal vez simplemente omitió elContent-Length: 0
encabezado.