Bloquear usuario que nao paga automaticamente?
Pessoal, estou com um probleminha, vira e meche tem uns usuários que nao pagam no dia ou atrasam consideravelmente a mensalidade, gostaria de fazer um bloqueio automatico.
Tipo com 10 dias eles serem bloqueados automaticamente pelo mikrotik, a proximo a data de bloqueio receber um email avisando, tem como fazer isso?
Caso nao possa receber aviso pelo menos que bloqueie, tem como fazer isso via scritp ou algo do tipo minha conexao é pppoe uso rb433...
vlw galera...fuico no aguardo..
Script Desliga e Religa Clientes
Na minha empresa conseguimos desenvolver um um script no mk que bloqueia os clientes automaticamente.
É enviado para o servidor através de script FTP um arquivo .txt com o número dos IP's que devem ser bloqueados, uma lista simples contendo apenas os IP's.
Ex.:
192.168.1.10
192.168.1.15
192.168.1.20
E o script por sua vez fica no servidor rodando a cada 10 minutos ou o tempo que vc preferir procurando os arquivos desliga.txt ou religa.txt .
Segue script DesligaCLiente
# Le arquivo txt com um endereço IP por linha e liga os IPs no HotSpot IP Bindings
# Apaga o arquivo desliga.txt após o processamento
# Arquivo txt deve sermpre acabar com <CR> apos ultima linha
# inicializa variaveis
# content = todo o conteudo do arquivo txt
# contentLen = número total de caracteres constantes no arquivo
:global content [/file get [/file find name=desliga.txt] contents] ;
:global contentLen [ :len $content ] ;
# inicializa variaveis auxliares
:global lineEnd 0;
:global line "";
:global lastEnd 0;
:global testeip "";
:log info "@@@ inicio DesliigaHotSpot @@@@"
# Loop identifica o fim da linha procurando por <CR>
# lineEnd = posição final do último digito da linha
# line = endereço IP da linha
# imprime no log o IP
# realiza a função DISA com utilizando a variável line
# incrementa lastEnd para re-iniciar o processo na prox linha
:do {
:set lineEnd [:find $content "\r\n" $lastEnd ] ;
:set line [:pick $content $lastEnd $lineEnd] ;
# loga o IP a ser desligado
: log info $line
# testa se arquivo chegou ao fim e apaga arquivo desliga.txt
:if ($contentLen = $lastEnd) do={ :log info "@@@ fim LigaHotSpot @@@@";/file remove desliga.txt}
# Testa se IP existe no HOTSPOT caso sim processa
ip hotspot ip-binding {
:set testeip [find address=$line]
}
:if ($testeip != "" ) do={ /ip hotspot ip-binding disa [find address=$line] } else={:log info "IP Invalido"}
:set lastEnd ( $lineEnd + 2 );
} while=($lineEnd < $contentLen);
Segue Script Religa CLiente
# Le arquivo txt com um endereço IP por linha e liga os IPs no HotSpot IP Bindings
# Apaga o arquivo religa.txt após o processamento
# Arquivo txt deve sermpre acabar com <CR> apos ultima linha
# inicializa variaveis
# content = todo o conteudo do arquivo txt
# contentLen = número total de caracteres constantes no arquivo
:global content [/file get [/file find name=religa.txt] contents] ;
:global contentLen [ :len $content ] ;
# inicializa variaveis auxliares
:global lineEnd 0;
:global line "";
:global lastEnd 0;
:global testeip "";
:log info "@@@ inicio LigaHotSpot @@@@"
# Loop identifica o fim da linha procurando por <CR>
# lineEnd = posição final do último digito da linha
# line = endereço IP da linha
# imprime no log o IP
# realiza a função DISA com utilizando a variável line
# incrementa lastEnd para re-iniciar o processo na prox linha
:do {
:set lineEnd [:find $content "\r\n" $lastEnd ] ;
:set line [:pick $content $lastEnd $lineEnd] ;
# loga o IP a ser desligado
: log info $line
# testa se arquivo chegou ao fim e apaga arquivo religa.txt
:if ($contentLen = $lastEnd) do={ :log info "@@@ fim LigaHotSpot @@@@";/file remove religa.txt}
# Testa se IP existe no HOTSPOT caso sim processa
ip hotspot ip-binding {
:set testeip [find address=$line]
}
:if ($testeip != "" ) do={ /ip hotspot ip-binding ena [find address=$line] } else={:log info "IP Invalido"}
:set lastEnd ( $lineEnd + 2 );
} while=($lineEnd < $contentLen);