Detecção do portal cativo geralmente funciona ao tentar acessar uma página por HTTP e verificar se a página retornada é a esperada.
O Android, por exemplo, se conectará a http://clients1.google.com/generate_204
, que simplesmente retorna um status HTTP de 204
. Presumivelmente, os clientes iOS funcionam de maneira semelhante.
Para abrir seu aplicativo da maneira que você descreve, basta redirecionar todas as solicitações HTTP que ainda não foram destinadas ao seu servidor de aplicativos. Desta forma, os clientes nunca receberão o resultado esperado.
Isto pode ser conseguido usando o NAT com iptables
se os clientes tiverem o sistema Debian configurado como seu gateway. Isso pode ser feito com uma regra semelhante à seguinte, em que APPSERVER
é o endereço IP do seu servidor de aplicativos:
iptables -t nat -D PREROUTING ! -d APPSERVER -p tcp –-dport 80 -j DNAT –to-destination APPSERVER
No entanto, não tenho certeza de como o uso do assistente de portal cativo pode ser adequado, pois eles geralmente são muito limitados e o usuário pode ter dificuldade em retornar ao aplicativo se fechar acidentalmente o assistente de portal cativo. Alguns dispositivos mais antigos também podem não detectar automaticamente a presença de um portal cativo. Como o usuário nunca poderá acessar a Internet pela rede, o assistente de portal cativo poderá continuar exibindo seu aplicativo periodicamente ou marcar a rede como não tendo acesso à Internet e impedir futuras conexões.