Când dispozitivul încearcă să se conecteze la un punct de acces sau la un router, trebuie să se conecteze pe pagina portalului captiv cu mesajul care spune „
„Conectați-vă la rețeaua Wi-Fi”.
Cum funcționează punctul de acces / router identificați că este necesară o conectare pentru dispozitiv și care este procesul din spatele acestuia?
Răspuns
Adresa URL de detecție diferă între diferite versiuni de Android.
Pentru Marshmallow, folosește connectivitycheck.gstatic.com/generate_204, verificați codul aici AndroidXRef – Marshmallow 6.0.0_r1
Pentru Kitkat, folosește clients3.google.com/generate_204 verificați codul AndroidXRef – KitKat 4.4.4_r1
Comentarii
Răspunde
Această tehnologie se numește „Portal captiv”. Există mai multe implementări. După cum știu, Android încearcă să ajungă la un fișier numit generate_204
pe unul dintre serverele Google și, dacă nu este posibil, se generează o notificare.
Lecturi suplimentare pe Wikipedia: Captive_portal
Comentarii
- De fapt, știu despre portalul captiv. Dar știu adresa URL specifică pentru a o verifica. Vreau să știu cum funcționează. Nu ce este.
- Ce vrei să spui – " cum funcționează "? Android trimite o solicitare și, dacă nu există un răspuns pozitiv, înseamnă că nu există o conexiune la internet și se generează notificări. ' este modul în care funcționează.
- Care este adresa URL specifică pentru care solicită Android. Am o mențiune în discuție.
- În comentariul dvs. anterior ați spus că știți adresa URL specifică. Cred că ' s
https://www.gstatic.com/generate_204
- URL-ul pare să fie clients3.google.com/generate_204 . Informații preluate de pe acest site pentru crom, care sunt probabil aceleași pentru Android. chromium.org/chromium-os/chromiumos-design-docs/…
Răspuns
Un portal captiv este în general implementat prin direcționarea întregului trafic către un răspuns HTTP valid (200). Acest răspuns HTTP este ceea ce apare în portalul captiv.
Acest lucru se poate face cu instrumente precum iptables sau dnsmasq.
http://connectivitycheck.gstatic.com/generate_204
returnează de fapt un 204 fără conținut și, evident, funcționează. Poate că tocmai ai lăsat afară antetulContent-Length: 0
.