Wenn das Gerät versucht, eine Verbindung zu einem Zugangspunkt oder Router herzustellen, muss es sich auf der Captive-Portalseite mit der Meldung

„Beim Wi-Fi-Netzwerk anmelden“.

Wie funktioniert der Zugangspunkt / Router? Stellen Sie fest, dass für das Gerät eine Anmeldung erforderlich ist und wie der Prozess dahinter abläuft.

Antwort

Die Erkennungs-URL unterscheidet sich zwischen verschiedene 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 wird clients3.google.com/generate_204 verwendet. Überprüfen Sie den Code AndroidXRef – KitKat 4.4.4_r1

Kommentare

  • Ich wollte ' die Antwort nicht entführen, indem ich sie bearbeite, also ' hinterlasse einfach einen Kommentar. Es hat eine Weile gedauert, bis mir klar wurde, dass die Erkennungs-URL die Benachrichtigung auslöst, wenn sie nicht erreicht werden kann. Außerdem benötigte ich meinen Zugangspunkt, um auf diese Anfrage mit Inhalten zu antworten. In meinem Fall gab ich einen 200-Code sowie die Indexseite meines Webservers zurück, wenn / generate_204 angefordert wurde. Ohne Inhalt in der Antwort würde ich unabhängig vom Rückkehrcode eine " erhalten. Wi-Fi hat keinen Internetzugang. " Benachrichtigung.
  • @ubomb Scheint seltsam, da http://connectivitycheck.gstatic.com/generate_204 tatsächlich einen 204 ohne Inhalt zurückgibt und offensichtlich funktioniert. Vielleicht haben Sie gerade den Header Content-Length: 0 weggelassen.

Antwort

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. Wenn dies nicht möglich ist, wird eine Benachrichtigung generiert.

Weiterführende Literatur auf Wikipedia: Captive_portal

Kommentare

  • Eigentlich kenne ich Captive Portal. Aber ich kenne die spezifische URL, um sie zu überprüfen. Ich möchte wissen, wie es funktioniert. Nicht was es ist.
  • Was meinst du – " wie es funktioniert "? Android sendet eine Anfrage. Wenn keine positive Antwort eingeht, bedeutet dies, dass keine Verbindung zum Internet besteht und eine Benachrichtigung generiert wird. So funktioniert '.
  • Welches ist die spezifische URL für welche Android-Anfrage? Ich habe in Frage erwähnt.
  • In Ihrem vorherigen Kommentar haben Sie gesagt, dass Sie die spezifische URL kennen. Ich denke, es ist ' s https://www.gstatic.com/generate_204
  • Die URL scheint clients3.google.com/generate_204 . Informationen von dieser Website für Chrom, die wahrscheinlich die gleiche für Android ist. chrom.org/chromium-os/chromiumos-design-docs/…

Antwort

Ein Captive-Portal wird im Allgemeinen implementiert, indem der gesamte Datenverkehr auf eine gültige HTTP-Antwort geleitet wird (200). Diese HTTP-Antwort wird im Captive-Portal angezeigt.

Dies kann mit Tools wie iptables oder dnsmasq erfolgen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.