تطوير تطبيقة لفحص IPs و Ports
#1
السلام عليكم ورحمة الله وبركاته
حاولت تطوير تطبيقة لفحص IPs و البورتات المفتوحة (80 و 21)
استعملت IdIcmpClientو IdTCPClinet و TIdTelnet
IdIcmpClient = لعمل ping و التاكد ان IP يعمل
IdTCPClinet = لفحص port 80
TIdTelnet = لفحص port 21
لكن البرنامج لم يعمل كما يجب

كود :
procedure TForm1.Button1Click(Sender: TObject); var i ,j ,n ,m ,b1 ,b2 ,b3 : Integer; IP:string; begin try b1 := StrToInt(edit1.Text); b2 := StrToInt(edit2.Text); b3 := StrToInt(edit3.Text); if (b1 > 255) or (b2 > 255) or (b3 > 255) then begin showmessage('Wrong range'); exit; end; n := StrToInt(edit4.Text); m := StrToInt(edit5.Text); if n > m then begin showmessage('Wrong range'); exit; end; IP := edit1.Text+'.'+edit2.Text+'.'+edit3.Text+'.'; except showmessage('Wrong range'); exit; end; Telnet.ConnectTimeout := 1000; IdIcmpClient1.Port := 80; IdIcmpClient1.PacketSize := 12; for i := n to m do begin try Application.ProcessMessages; IdIcmpClient1.Host := IP + IntToStr(i); IdIcmpClient1.Ping; if IdIcmpClient1.ReplyStatus.BytesReceived > 0 then begin IdIcmpClient1.ReplyStatus.CleanupInstance; memo1.Lines.Add(IdIcmpClient1.host); IdTCPClient1.Port := 80; IdTCPClient1.Host := IdIcmpClient1.Host; try IdTCPClient1.Connect; if IdTCPClient1.Connected = true then Memo1.Lines.Add(IdTCPClient1.Host + ' connected 80') else Memo1.Lines.Add(IdTCPClient1.Host + ' Port 80 open but Could not connect'); except Memo1.Lines.Add(IdTCPClient1.Host + ' Could not connect to 80'); Memo1.Lines.Add(IdTCPClient1.Host + ' connecting on port 21...'); Telnet.Host := IdTCPClient1.Host; try Telnet.Connect; if telnet.Connected = true then begin Telnet.Disconnect; Memo1.Lines.Add(telnet.Host +' connected on 21'); Telnet.Disconnect; end; Except Memo1.Lines.Add(telnet.Host +' -couldnt connect to 21'); end; end; end; finally Telnet.Disconnect; IdTCPClient1.Disconnect; end; end; end;

هل من حل؟
شكرا
الرد
#2

وعليكم السلام ورحمة الله
إقتباس :لم يعمل كما يجب
أوضح، ما المشكل بالضبط ؟
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم