Quando o dispositivo tenta se conectar a um ponto de acesso ou roteador, ele precisa fazer login na página do portal cativo com a mensagem

“Faça login na rede Wi-Fi”.

Como funciona o ponto de acesso / roteador identificar que um login é necessário para o dispositivo e qual é o processo por trás dele?

Resposta

O url de detecção difere entre diferentes versões do Android.

Para Marshmallow, ele usa conectividadecheck.gstatic.com/generate_204, verifique o código aqui AndroidXRef – Marshmallow 6.0.0_r1

Para Kitkat, ele usa clients3.google.com/generate_204 verifique o código AndroidXRef – KitKat 4.4.4_r1

Comentários

  • Eu não ' queria sequestrar a resposta editando-a, então ' Vou apenas deixar um comentário. Levei um tempo para perceber que o URL de detecção aciona a notificação se não puder ser acessado. Além disso, eu precisava que meu ponto de acesso respondesse a essa solicitação com algum tipo de conteúdo – no meu caso, retornei um código 200, bem como a página de índice do meu servidor web quando / generate_204 é solicitado. Sem conteúdo na resposta, independentemente do código de retorno, eu receberia uma notificação de " Wi-Fi sem acesso à Internet ".
  • @ubomb Parece estranho, pois http://connectivitycheck.gstatic.com/generate_204 na verdade retorna um 204 sem conteúdo e obviamente funciona. Talvez você tenha apenas omitido o Content-Length: 0 cabeçalho.

Resposta

Esta tecnologia é denominada “portal cativo”. Existem várias implementações. Como eu sei, o Android tenta acessar um arquivo chamado generate_204 em um dos servidores do Google e, se não for possível, uma notificação é gerada.

Leituras adicionais na Wikipedia: Captive_portal

Comentários

  • Na verdade eu sei sobre o portal cativo. Mas eu sei o URL específico para verificar. Eu quero saber como funciona. Não o que é.
  • O que você quer dizer – " como funciona "? O Android envia uma solicitação e, se não houver resposta positiva, significa que não há conexão com a internet e é gerada uma notificação. É ' como funciona.
  • Qual é o URL específico em que o Android solicita. Eu mencionei em questão.
  • Em seu comentário anterior, você disse que conhece o URL específico. Acho que ' s https://www.gstatic.com/generate_204
  • O URL parece ser clients3.google.com/generate_204 . As informações retiradas deste site para o cromo, que provavelmente são as mesmas para o Android. chromium.org/chromium-os/chromiumos-design-docs/…

Resposta

Um portal cativo geralmente é implementado direcionando todo o tráfego para uma resposta HTTP válida (200). Esta resposta HTTP é o que aparece no portal cativo.

Isso pode ser feito com ferramentas como iptables ou dnsmasq.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *