Wanneer het apparaat probeert verbinding te maken met een toegangspunt of router, moet het inloggen op de captive portal-pagina met het bericht

“Log in op Wi-Fi-netwerk”.

Hoe werkt het toegangspunt / de router identificeren dat een aanmelding vereist is voor het apparaat en wat is het proces erachter?

Antwoord

De detectie-URL verschilt tussen verschillende Android-versies.

Voor Marshmallow gebruikt het connectivitycheck.gstatic.com/generate_204, controleer de code hier AndroidXRef – Marshmallow 6.0.0_r1

Voor Kitkat gebruikt het clients3.google.com/generate_204 controleer de code AndroidXRef – KitKat 4.4.4_r1

Reacties

  • Ik wilde ' het antwoord niet kapen door het te bewerken, dus ik ' Laat gewoon een reactie achter. Het kostte me een tijdje om te beseffen dat de detectie-URL de melding activeert als deze niet kan worden bereikt. Bovendien had ik mijn toegangspunt nodig om op dit verzoek te reageren met een soort inhoud – in mijn geval heb ik een 200-code geretourneerd, evenals de indexpagina van mijn webserver wanneer / genereren_204 wordt gevraagd. Zonder inhoud in het antwoord, ongeacht de retourcode, zou ik een " Wi-Fi hebben geen internettoegang " melding krijgen.
  • @ubomb Lijkt vreemd, aangezien http://connectivitycheck.gstatic.com/generate_204 feitelijk een 204 zonder inhoud retourneert, en het werkt duidelijk. Misschien heb je de Content-Length: 0 header weggelaten.

Answer

Deze technologie heet “Captive portal”. Er zijn verschillende implementaties. Zoals ik weet, probeert Android een bestand met de naam generate_204 te bereiken op een van de Google-servers en als dit niet mogelijk is, wordt er een melding gegenereerd.

Verder lezen op Wikipedia: Captive_portal

Reacties

  • Eigenlijk weet ik van captive portal. Maar ik ken de specifieke URL om het te controleren. Ik wil weten hoe het is om te werken. Niet wat het is.
  • Wat bedoel je – " hoe het werkt "? Android verzendt een verzoek en als er geen positief antwoord is, betekent dit dat er geen verbinding met internet is en dat er een melding wordt gegenereerd. Dat ' is hoe het werkt.
  • Wat is de specifieke URL waarop Android een verzoek indient. Ik heb het in kwestie genoemd.
  • In uw vorige opmerking zei u dat u de specifieke URL kent. Ik denk dat het ' s https://www.gstatic.com/generate_204
  • De URL lijkt clients3.google.com/generate_204 . Informatie afkomstig van deze site voor chroom, wat waarschijnlijk hetzelfde is voor Android. chromium.org/chromium-os/chromiumos-design-docs/…

Answer

Een captive portal wordt over het algemeen geïmplementeerd door al het verkeer naar een geldig HTTP-antwoord (200) te leiden. Dit HTTP-antwoord is wat verschijnt in de captive portal.

Dit kan gedaan worden met tools zoals iptables of dnsmasq.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *