📄 sca.~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 + -