Wenn das Gerät versucht, eine Verbindung zu einem Zugriffspunkt oder Router herzustellen, muss es sich auf der Seite des Captive-Portals mit der folgenden Meldung anmelden
„Bei WLAN-Netzwerk anmelden“.
Wie erkennt der Access Point/Router, dass eine Anmeldung für das Gerät erforderlich ist und was ist der Prozess dahinter?
Die Erkennungs-URL unterscheidet sich zwischen verschiedenen Android-Versionen.
Für Marshmallow wird Connectivitycheck.gstatic.com/generate_204 verwendet, überprüfen Sie den Code hier AndroidXRef - Marshmallow 6.0.0_r1
Für Kitkat verwendet es client3.google.com/generate_204, überprüfen Sie den Code AndroidXRef - KitKat 4.4.4_r1
Diese Technologie wird als „Captive Portal“ bezeichnet. Es gibt mehrere Implementierungen. Wie ich weiß, versucht Android, eine Datei mit dem Namen generate_204
auf einem der Google-Server zu erreichen, und wenn dies nicht möglich ist, wird eine Benachrichtigung generiert.
Weiterführende Literatur auf Wikipedia: Captive_portal
https://www.gstatic.com/generate_204
Ein Captive-Portal wird im Allgemeinen implementiert, indem der gesamte Datenverkehr an eine gültige HTTP-Antwort (200) geleitet wird. Diese HTTP-Antwort wird im Captive-Portal angezeigt.
Dies kann mit Tools wie iptables oder dnsmasq erfolgen.
ubomb
Tamir Daniely
http://connectivitycheck.gstatic.com/generate_204
tatsächlich ein 204 ohne Inhalt zurückgegeben wird und offensichtlich funktioniert. Vielleicht hast du nur dieContent-Length: 0
Überschrift weggelassen.