⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sca.~pas

📁 Very fast port scanner
💻 ~PAS
字号:
unit Sca;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, jpeg, ExtCtrls, StdCtrls, ScktComp,PsAPI,winsock,ComCtrls,Mapi, Sockets, AclAPI;

type
  TForm1 = class(TForm)
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Image1: TImage;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label8: TLabel;
    Edit4: TEdit;
    Panel3: TPanel;
    Edit1: TEdit;
    Panel1: TPanel;
    Edit2: TEdit;
    Edit3: TEdit;
    Panel2: TPanel;
    ListBox1: TListBox;
    ProgressBar1: TProgressBar;
    Button1: TButton;
    ClientSocket1: TClientSocket;
    Timer1: TTimer;

    procedure Panel1Click(Sender: TObject);
    procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;
      ErrorEvent: TErrorEvent; var ErrorCode: Integer);
    procedure Timer1Timer(Sender: TObject);
    procedure Panel2Click(Sender: TObject);
    procedure ClientSocket1Connect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure ClientSocket1Disconnect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure Panel3Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  ListItem: TListItem;
  x : LongInt;
  des, por : string;

implementation

uses aboutttttttt;

{$R *.dfm}

procedure TForm1.Panel1Click(Sender: TObject);
begin
if edit1.Text = '' then
showmessage('Please Enter an IP')
else if edit2.Text = '' then
showmessage('Enter a Port Number(s)')
else if edit3.Text = '' then
showmessage('Enter a Port Number(s)')
else if edit4.Text = '' then
showmessage('Please Enter an Interval')
else
begin
if panel1.Caption = 'Stop' then
begin
timer1.Enabled := false;
label7.Caption := 'Aborted';
clientsocket1.Port := strtoint(edit2.Text);
panel1.caption := 'Scan';
progressbar1.step := 0;
edit1.enabled := true;
edit2.enabled := true;
edit3.enabled := true;
edit4.Enabled := true;
panel1.Color := clnavy;
panel3.visible := false;
label10.Caption := '';
end
else
begin
progressbar1.StepBy(-(strtoint(edit3.Text)));
clientsocket1.Port := strtoint(edit2.Text);
listbox1.Items.Clear;
label4.caption := edit2.Text;
progressbar1.Min := 0;
progressbar1.Max := ((strtoint(edit3.Text))-(strtoint(edit2.Text)));;
timer1.Interval := strtoint(edit4.Text);
edit1.enabled := false;
edit2.enabled := false;
edit3.enabled := false;
edit4.Enabled := false;
label10.Caption := '0';
listbox1.Items.add(edit1.text + ' - Port ' + edit2.Text +' to ' + edit3.Text);
listbox1.Items.Add('=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-');
timer1.Enabled := true;
begin
if timer1.Enabled = true then
begin
 panel1.Caption := 'Stop';
panel1.Color := RGB(1,1,190)
end
end;
end;
end;
end;


procedure TForm1.ClientSocket1Error(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
errorcode := 0
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
s, d: integer;
porty : string;
begin if clientsocket1.Port = strtoint(edit3.Text)
then begin
timer1.Enabled := false;
label7.Caption := 'Completed';
Panel1.Caption := 'Scan';
edit1.enabled := true;
edit2.enabled := true;
edit3.enabled := true;
edit4.Enabled := true;
panel1.Color := clnavy;
panel3.visible := false;
end
else begin
if clientsocket1.Port = strtoint(label4.caption)
then
begin
label7.caption := 'Scanning';
d := clientsocket1.Port + 1;
label4.Caption := inttostr(d);
s := strtoint(label4.caption);
porty := inttostr(clientsocket1.Port);
clientsocket1.address := edit1.Text;
clientsocket1.Port := s;
clientsocket1.open;
panel3.Visible := true;
progressbar1.StepBy(1);
end;
end;
end;




procedure TForm1.Panel2Click(Sender: TObject);
begin
application.Terminate;
end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;
  Socket: TCustomWinSocket);
  var
  i : integer;
begin
  listbox1.Items.Add('Port  '+inttostr(clientsocket1.port)+' open' );
  clientsocket1.Close;
  i := strtoint(label10.Caption) +1;
  label10.Caption := inttostr(i);
  begin
  if edit3.Text = label4.Caption then timer1.Enabled := false;
end;
end;

procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
timer1.Enabled := true;
end;



procedure TForm1.Panel3Click(Sender: TObject);
begin
if panel3.Caption = 'Resume' then
begin
timer1.Enabled := true;
if timer1.Enabled = true then
label7.Caption := 'Scanning';
panel3.caption := 'Pause';
panel3.Color := clyellow;
end
else
begin
timer1.Enabled := false;
label7.Caption := 'Paused';
panel3.caption := 'Resume';
panel3.Color := cllime;
progressbar1.step := 0;

end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
form2.visible := true;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -