Oficina
Port Scanner
Qua 5 Abr 2006 19:22 |
- Detalhes
- Categoria: Ferramentas de Rede
- Atualização: Domingo, 14 Junho 2009 17:12
- Autor: T.J.Nogueira
- Acessos: 20775
Entendendo o Código
Como podemos ver, foi bem simples a construção da interface do programa assim como a adição de seu código-fonte. Vamos agora entender as linhas de código adicionadas e as suas respectivas funções.
Na parte de programação referente ao nosso botão Iniciar temos inicialmente a linha:
Var i: Integer;
Esta linha corresponde à criação da variável i, que será a responsável por auxiliar no loop For para a contagem das portas a serem verificadas.
A seguir, na linha:
Listagem.clear;
limpamos o nosso Tmemo1.
Na linha:
Stop:=0;
Iniciamos o valor desta variável para 0, pois desta forma o programa continuará a varredura através das portas selecionadas pelo usuário até que o loop For acabe ou que o usuário pressione o nosso botão Parar.
Em
TCPClient1.Remotehost:=Edit1.text;
repassamos para a propriedade RemoteHost do nosso TTCPClient o conteúdo do componente Edit1.text, que será o servidor repassado pelo usuário.
Temos então o início do loop For baseado nas portas Inicial e Final escolhidas pelo usuário nos componentes TspinEdit.
For i:= inicio.value to fim.value do
A seguir, verifica-se se o botão Parar foi acionado, solicitando o cancelamento da verificação ( loop ).
If Stop=1 then break;
Agora, exibimos na Interface a porta que está sendo verificada no momento
Label5.caption:=inttostr(i);
Pedimos ao sistema operacional que processe as informações do programa, evitando assim que o mesmo não tenha o efeito de congelamento evidente.
Application.ProcessMessages;
Agora, nas linhas a seguir, definimos para a propriedade RemotePort o nosso TCPClient1 qual porta devera ser verificada no momento, depois ativamos o nosso TCPClient1 e, em seguida, verificamos se foi obtido sucesso.Caso o sucesso seja obtido, adicionamos no nosso Memo1 uma linha contendo a porta que foi encontrada com o estado de aberta. Depois, independente do estado da porta, pedimos sua desconexão.
TCPCLient1.remoteport:= inttostr(i); TCPClient.Active:=true; If TCPClient1.connect then Listagem.lines.add('A Porta ['+ inttostr(i)+ '] está aberta.'); TCPClient1.disconnect; End;
Em seguida, terminamos o loop e tratamos todas as exceções que possam ocorrer entre os blocos protegidos try.
Except On E:Exception do Begin Listagem.lines.add('Erro: ' + E.Message); End; End;
Por fim, escrevemos no nosso Memo1 a mensagem de que a verificação foi terminada e finalizamos a execução do programa.
Listagem.lines.add('Verificação Terminada.'); End;
Para concluir, no nosso botão Parar temos a linha de código:
Stop:=1;
Esta linha é responsável por colocar o valor 1 na variável Stop, para que quando o usuário clique no botão Parar, o loop de verificação das portas pare graças ao trecho de código do botão Iniciar abaixo:
If Stop=1 then Break;