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
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.
http://connectivitycheck.gstatic.com/generate_204
faktisk returnerer en 204 uten innhold, og åpenbart fungerer. Kanskje du bare har utelattContent-Length: 0
header.