Når enheden forsøger at oprette forbindelse til et adgangspunkt eller en router, skal den logge på portalsiden med den besked, der siger

“Log ind på Wi-Fi-netværk”.

Hvordan fungerer adgangspunktet / routeren identificere, at der kræves et login til enheden, og hvad er processen bag den?

Svar

Registreringswebadressen er forskellig mellem forskellige Android-versioner.

For Marshmallow bruger den connectivitycheck.gstatic.com/generate_204, tjek koden her AndroidXRef – Marshmallow 6.0.0_r1

For Kitkat bruger den clients3.google.com/generate_204 kontroller koden AndroidXRef – KitKat 4.4.4_r1

Kommentarer

  • Jeg ville ikke ' ikke ville kapre svaret ved at redigere det, så jeg ' Efterlad bare en kommentar. Det tog mig et stykke tid at indse, at detekterings-URLen udløser underretningen, hvis den ikke kan nås. Derudover havde jeg brug for mit adgangspunkt for at svare på denne anmodning med en slags indhold – i mit tilfælde returnerede jeg en 200-kode samt indeksiden på min webserver, når der anmodes om / generere_204. Uden indhold i svaret, uanset returkoden, ville jeg få en " Wi-Fi har ingen internetadgang " underretning.
  • @ubomb Virker underligt, da http://connectivitycheck.gstatic.com/generate_204 faktisk returnerer en 204 uden indhold og fungerer naturligvis. Måske har du bare udeladt Content-Length: 0 header.

Svar

Denne teknologi kaldes “Captive portal”. Der er flere implementeringer. Som jeg ved, forsøger Android at nå en fil med navnet generate_204 på en af Googles servere, og hvis det ikke er muligt, genereres en meddelelse.

Yderligere læsning på Wikipedia: Captive_portal

Kommentarer

  • Faktisk ved jeg noget om captive portal. Men jeg kender den specifikke URL til at kontrollere den. Jeg vil gerne vide, hvordan det fungerer. Ikke hvad det er.
  • Hvad mener du – " hvordan det fungerer "? Android sender en anmodning, og hvis der ikke er noget positivt svar, betyder det, at der ikke er nogen forbindelse til internettet, og der genereres besked. At ' fungerer, hvordan det fungerer.
  • Hvilket er den specifikke URL, som android anmoder om. Jeg har nævnt i spørgsmålet.
  • I din tidligere kommentar sagde du, at du kender den specifikke URL. Jeg synes det ' s https://www.gstatic.com/generate_204
  • URLen ser ud til at være clients3.google.com/generate_204 . Oplysninger taget fra dette websted for chrom, hvilket sandsynligvis er det samme for Android. chromium.org/chromium-os/chromiumos-design-docs/…

Svar

En captive portal implementeres generelt ved at dirigere al trafik til et gyldigt HTTP-svar (200). Dette HTTP-svar er det, der vises i den bundne portal.

Dette kan gøres med værktøjer som iptables eller dnsmasq.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *