estou fazendo um scriptizinho em perl que vai ficar ouvindo uma determinada porta e
qnd algum cliente se conecta e envia certos
comandos ele vai se conectar ou desconectar da interface ppp
se alguem kiser ver o script de uma olhada no fim do email... eh bem igual ao exemplo
do perlbook sobre IO::socket
oq eu estou tendo dificuldades � que n�o tenho muita ideia de que arquivos guardam a
configura��o das conexoes por PPP... !
as interfaces como loopback e ethernet eu subo e des�o usando
ifup eth0 ou ifdown eth0... sem problemas... mas qnd escrevo ifup ppp0 ... nao
acontece nada... tipo... ele vai para a linha de
baixo... como se estivesse tentando fazer alguma coisa... ele fica lendo a HD de
tempos em tempos e nada... fica nisso o tempo que
for... depois de algum tempo dou um Ctrl+C e ele para... sem subir nada...
pelo Kppp eu conecto normalmente... mas por exemplo... se conectar pelo Kppp e usar
ifdown ppp0 nada acontece tmb...
alguem pode me dar uma luz?
Obrigado
Gabriel
==============diald.pl==================
#!/usr/bin/perl
use IO::Select;
use IO::Socket;
$lsn = new IO::Socket::INET(Listen => 1, LocalPort => 80, Timeout => 5 );
$sel = new IO::Select( $lsn );
$iIndex = 0 ;
open(LOG, ">>/etc/discadorremoto.log");
print LOG "Inicializado " . time;
while(@ready = $sel->can_read) {
foreach $fh (@ready) {
if($fh == $lsn) {# Create a new socket
$new = $lsn->accept;
$sel->add($new);
send( $new , "Welcome Fucking Bastard!!\n" , 0 ) ;
$process[ $iIndex ] = $new ;
$iIndex++ ;
}else {# Process socket
recv( $fh , $strRecebida , 1024 , 0) ;
print "\n\n\n\n" . $strRecebida . "\n\n\n\n";
if($strRecebida eq "disca") {
print LOG "disca";
send ($fh, "Comando recebido!", 0);
print ">>>disca";
#executa os if-up/if-down da vida
}elsif($strRecebida eq "desliga") {
print LOG "desliga";
send ($fh, "Comando recebido!", 0);
print ">>>desliga";
#executa os if-up/if-down da vida
}elsif($strRecebida eq "status") {
print LOG "status";
print ">>>status";
#deve procurar nos arquivos certos o status da
conexao, como: IP, velocidade, e tempo online e
enviar de volta ao cliente...
}elsif($strRecebida eq "fechabot") {
print LOG "fechabot";
print ">>>fechabot";
send ($fh, "Comando recebido!", 0);
$sel->remove($fh);
$fh->close;
exit
}else {
print LOG "Erro! impossivel interpretar:\n" .
$strRecebida . "\n [EoE]";
print "Erro! impossivel interpretar:\n" . $strRecebida
. "\n [EoE]";
}
#for ( $jIndex = 0 ; $jIndex < @process ; $jIndex++){
# if ( $fh != $process[ $jIndex ] ){ send ( $process[
$jIndex ] , $teste, 0 ); };
#}
# adios...
$sel->remove($fh);
$fh->close;
}
}
}
==================== eof =================================
Assinantes em 02/05/2001: 2269
Mensagens recebidas desde 07/01/1999: 111796
Historico e [des]cadastramento: http://linux-br.conectiva.com.br
Assuntos administrativos e problemas com a lista:
mailto:[EMAIL PROTECTED]