Cara... veja bem... jah implementei isso. Primeiro ponto: ping eh problema, maquina com xp com firewall ativado e pronto, nada de ping. Solucao: uso ipfw -T e verifico quando foi q o ultimo pacote daquele cliente passou pelo ipfw, se estorou o timeout que defini (5min), eu desconecto o cara.
Outra coisa, aqui, fiz tudo em python, mas pretendo migrar para c/c++. Atenciosamente m3bsd 2008/6/25 Jorge Aldo <[EMAIL PROTECTED]>: > 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 > -- Atenciosmente Mario Augusto Mania <m3BSD> ----------------------------------------------- [EMAIL PROTECTED] Cel.: (43) 9938-9629 Msn: [EMAIL PROTECTED] ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd

