var Form1: TForm1; n:integer; //后台地址某一行 i:integer; //后台地址行数 dir:string; //当前文件路径 implementation
{$R *.dfm}
procedure TForm1.WinHTTP1HeaderInfo(Sender: TObject; ErrorCode: Integer; //接收头信息 const RawHeadersCRLF, ContentType, ContentLanguage, ContentEncoding: String; ContentLength: Integer; const Location: String; const Date, LastModified, Expires: TDateTime; const ETag: String; var ContinueDownload: Boolean); var h:integer; //HTTP status codes S:string; //全部头信息 begin S:=RawHeadersCRLF; //全部头信息 h:=errorcode; //HTTP status codes memoguocheng.lines.Add(edurl.Text+memoht.lines[n]+' → '+copy(S,1,12)); if h=200 then begin with listview1.Items.Add do begin caption:=edurl.Text+memoht.lines[n]; subitems.add('页面存在!'); end; end else if h=403 then begin with listview1.Items .add do begin caption:=edurl.Text +memoht.lines[n]; subitems.add('目录存在!'); end; end; n:=n+1; //后台地址下一行 end;
procedure TForm1.ButtonstartClick(Sender: TObject); var x:integer; //滑块条位置 begin n:=0; //后台地址初始行为0,既第一行 i:=memoht.Lines.Count; //后台地址行数 ProgressBar1.Position :=0; //进度条初始位置 listview1.Items .Clear ; //清除listview1中内容 edit1.Text :=''; //清空edit1 button1.Enabled :=false; //‘打开’按钮不可用 if edurl.Text='' then begin showmessage('请输入要扫描的网址!'); exit; end; x:=trackbar1.position; //滑块条位置 case x of 0:timer1.interval:=1; //位置为0时timer1延时为1毫秒 1:timer1.interval:=10; 2:timer1.interval:=100; 3:timer1.interval:=200; 4:timer1.interval:=400; 5:timer1.Interval:=600; 6:timer1.Interval :=800; 7:timer1.interval:=1000; 8:timer1.interval:=2000; 9:timer1.interval:=3000; 10:timer1.interval:=5000; end; end;
procedure TForm1.Timer1Timer(Sender: TObject); var url:string; //扫描页面地址 begin i:=memoht.lines.Count ; if nbegin url:=edurl.Text +memoht.lines[n]; winhttp1.URL :=url; edhost.Text :=winhttp1.HostName ; //主机地址 edscan.Text :=memoht.lines[n]; winhttp1.Read; end else begin memoguocheng.Lines.Add('扫描完毕!'); edscan.text:='Scan Over!'; edit1.text:='扫描完成,找到'+inttostr(listview1.Items .count)+'个地址!'; timer1.Interval:=0; end; progressbar1.Position :=round(n/i*100); //进度条位置 end;
procedure TForm1.ButtonaspClick(Sender: TObject); begin memoht.Lines .loadfromfile(dir+'/asp.txt'); //导入ASP后台文件 end;
procedure TForm1.ButtonphpClick(Sender: TObject); begin memoht.lines.loadfromfile(dir+'/php.txt'); //导入PHP后台文件 end;
procedure TForm1.ButtonaspxClick(Sender: TObject); begin memoht.lines.loadfromfile(dir+'/aspx.txt'); //导入ASPX文件 end;
procedure TForm1.ButtonstopClick(Sender: TObject); begin timer1.Interval :=0; //停止 end;
procedure TForm1.ButtoncloseClick(Sender: TObject); begin close; end;
procedure TForm1.ButtonselfClick(Sender: TObject); begin if opendialog1.Execute then memoht.lines.loadfromfile(opendialog1.FileName); end;