Quando il dispositivo tenta di connettersi a un punto di accesso o router, deve accedere alla pagina del captive portal con il messaggio che dice

“Accedi alla rete Wi-Fi”.

Come funziona il punto di accesso / router identificare che è richiesto un accesso per il dispositivo e qual è il processo alla base?

Risposta

LURL di rilevamento è diverso tra diverse versioni di Android.

Per Marshmallow, utilizza connectivitycheck.gstatic.com/generate_204, controlla il codice qui AndroidXRef – Marshmallow 6.0.0_r1

Per Kitkat, utilizza clients3.google.com/generate_204 controlla il codice AndroidXRef – KitKat 4.4.4_r1

Commenti

  • ' non volevo dirottare la risposta modificandola, quindi ' Lascerò solo un commento. Mi ci è voluto un po per rendermi conto che lURL di rilevamento attiva la notifica se non può essere raggiunto. Inoltre, avevo bisogno del mio punto di accesso per rispondere a questa richiesta con un qualche tipo di contenuto – nel mio caso ho restituito un codice 200 e la pagina di indice del mio server web quando è richiesto / generate_204. Senza contenuto nella risposta, indipendentemente dal codice di ritorno, riceverei una notifica " Wi-Fi non ha accesso a Internet ".
  • @ubomb Sembra strano, poiché http://connectivitycheck.gstatic.com/generate_204 restituisce effettivamente un 204 senza contenuto e ovviamente funziona. Forse hai appena tralasciato Content-Length: 0 intestazione.

Risposta

Questa tecnologia si chiama “Captive portal”. Esistono diverse implementazioni. Come so, Android cerca di raggiungere un file denominato generate_204 su uno dei server di Google e, se non è possibile, viene generata una notifica.

Ulteriore lettura su Wikipedia: Captive_portal

Commenti

  • In realtà so del captive portal. Ma conosco lURL specifico per controllarlo. Voglio sapere come funziona. Non quello che è.
  • Cosa intendi con " come funziona "? Android invia una richiesta e, se non cè una risposta positiva, significa che non cè connessione a Internet e viene generata una notifica. Funziona così '.
  • Qual è lURL specifico su cui richiede Android. Ho una menzione in questione.
  • Nel tuo commento precedente hai detto di conoscere lURL specifico. Penso che ' s https://www.gstatic.com/generate_204
  • LURL sembra essere clients3.google.com/generate_204 . Informazioni tratte da questo sito per il cromo che probabilmente è lo stesso per Android. chromium.org/chromium-os/chromiumos-design-docs/…

Risposta

Un captive portal viene generalmente implementato indirizzando tutto il traffico a una risposta HTTP valida (200). Questa risposta HTTP è ciò che appare nel captive portal.

Questo può essere fatto con strumenti come iptables o dnsmasq.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *