Når enheten prøver å koble til et tilgangspunkt eller en ruter, må den logge på portalsiden med meldingen om å si

«Logg på Wi-Fi-nettverk».

Hvordan fungerer tilgangspunktet / ruteren identifisere at det kreves pålogging for enheten, og hva er prosessen bak den?

Svar

Deteksjons-url er forskjellig mellom forskjellige Android-versjoner.

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

For Kitkat bruker den clients3.google.com/generate_204 sjekk koden AndroidXRef – KitKat 4.4.4_r1

Kommentarer

  • Jeg ville ikke ' t å kapre svaret ved å redigere det, så jeg ' La bare legge igjen en kommentar. Det tok meg en stund å innse at deteksjons-URL-en utløser varselet hvis det ikke kan nås. I tillegg trengte jeg tilgangspunktet mitt for å svare på denne forespørselen med noe slags innhold – i mitt tilfelle returnerte jeg en 200-kode samt indeksiden til webserveren min når / generere_204 blir bedt om. Uten innhold i svaret, uavhengig av returkoden, ville jeg få et " Wi-Fi har ingen Internett-tilgang " varsel.
  • @ubomb Virker rart, siden http://connectivitycheck.gstatic.com/generate_204 faktisk returnerer en 204 uten innhold, og åpenbart fungerer. Kanskje du bare har utelatt Content-Length: 0 header.

Svar

Denne teknologien kalles «Captive portal». Det er flere implementeringer. Som jeg vet, prøver Android å nå en fil med navnet generate_204 på en av Googles servere, og hvis det ikke er mulig, genereres et varsel.

Videre lesing på Wikipedia: Captive_portal

Kommentarer

  • Egentlig vet jeg om captive portal. Men jeg vet den spesifikke URL-en for å sjekke den. Jeg vil vite hvordan det er. Ikke hva det er.
  • Hva mener du – " hvordan det fungerer "? Android sender en forespørsel, og hvis det ikke er noe positivt svar, betyr det at det ikke er noen forbindelse til internett, og varsling genereres. At ' er hvordan det fungerer.
  • Hvilken er den spesifikke nettadressen som android ber om. Jeg har nevnt i spørsmålet.
  • I din forrige kommentar sa du at du kjenner den spesifikke URL-en. Jeg tror det ' s https://www.gstatic.com/generate_204
  • URL-en ser ut til å være clients3.google.com/generate_204 . Informasjon hentet fra dette nettstedet for krom, som sannsynligvis er den samme for Android. chromium.org/chromium-os/chromiumos-design-docs/…

Svar

En fangeportal implementeres vanligvis ved å lede all trafikk til et gyldig HTTP-svar (200). Dette HTTP-svaret er det som vises i fangeportalen.

Dette kan gjøres med verktøy som iptables eller dnsmasq.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *