Seguinte, desenvolvi uma aplicacao de portal cativo que autentica usuarios contra um banco de dados sqlite (bem, depois posso mudar isso pra outra tecnologia, não é muito complicado).
O processo se dá em algumas etapas : 1 - Requisição original é interceptada e enviada para o servico redirecionador O servico redirecionador analisa o pedido e envia uma página com uma tag <meta http-equiv="refresh" bla bla bla, com o endereço original num campo originalurl da query (para posterior uso) e com a query apontando para o servico do portal 2 - o servico do portal envia uma tela de login (configuravel) para o usuario (em https) 3 - o usuario loga, se por algum motivo não for autenticado, recebe uma mensagem de erro. 4 - se for autenticado, eh enviado para uma nova página de redirecionamento que decodifica o endereco originalmente requisitado e o redireciona para lá com uma nova meta tag. o servidor mantem um "serviço pingador" que envia alguns pings para as maquinas em estado "ativo" pra ver se elas ainda estao no ar. Quando uma maquina é desligada, não responde o ping e é marcada novamente como não logada. na partida do servico ele chama um script chamado startall.sh e, para cada cadastrada no banco de dados, chama um script start.sh com id e ip como parametros quando um usuario loga, o sistema chama um script chamado login.sh com id, ip, bandadesubida e bandadedescida como parametros quando um usuario eh derrubado (por algum motivo inclusive se nao responder a 3 pings seguidos) o sistema chama um script chamado logout.sh com id e ip como parametros meu problema consiste no seguinte : Preciso fazer esses scripts de forma eficiente, meu objetivo eh desenvolver uma boa solução de portal cativo + controle de banda individual + squid proxy/cache para pequenos provedores wireless. não sei nem por onde comecar com esses scripts ! já fiz alguns, estou botando eles em campo agora para fazer testes. Fiz alguns testes nos servicos usando openload e o servidor suportou +50k requisições no total (nao travou, eu que cansei de esperar hehe) e parece estavel.. Para funcionar, ele de uma regra que faça os pacotes saindo da rede em direcao a porta 80 sejam redirecionados para a porta do servico de redirecionamento (configurei ele na porta 1932) creio que o uso simultaneo do squid vai requerer que essa regra de redirecionamento seja apagada assim que o usuario fique online, substituindo-a por uma nova regra de redirecionamento desta vez apontando para o squid (em modo transparente). Bem, todo esse trabalho eu pretendo publicar na licença BSD, mas ainda não posso faze-lo incialmente. ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd