Huhu :>
Um zu sehen welche Ports bei mir offen sind, habe ich mir fix mal nen Portscanner geschrieben. Es geht auch soweit alles, aber in der zeit wo er scannt, kann ich an dem kleinen Tool absolut nichts mehr machen. Die Prozessor lastung derweil steigt auch nicht sehr in die höhe. An meiner Firewall jedoch sehe ich, das das programm noch am scannen ist.
Der Komplette Source:
Code:
procedure TForm1.Button1Click(Sender: TObject);
var StartPort : integer;
EndPort : integer;
i : integer;
begin
Memo1.Lines.Add('Scanning ' + Edit1.text);
StartPort := StrToInt(Edit2.Text);
EndPort := StrToInt(Edit3.Text);
if StartPort > Endport then
begin
MessageDlg('Ending Port have to be higher than starting port!', mtInformation, [mbOk], 0);
exit
end
else
for i := StartPort to EndPort do
begin
Label4.Caption := 'Scanning';
try
TcpClient1.Open;
TcpClient1.RemotePort := IntToStr(i);
TcpClient1.RemoteHost := Edit1.Text;
if TcpClient1.Connect then
Memo1.Lines.add(IntToStr(i));
Label5.Caption := 'Current Port: ' + IntToStr(i);
TcpClient1.Close;
except
on ESocketError do
Application.ProcessMessages;
end;
end;
Label4.Caption := 'Finish';
Memo1.Lines.Add('-------------------------------------')
end;
Auserdem möchte ich ein "Stop" Button haben, jedoch weis ich nicht wie ich die laufende procedur anhalten kann?!