02-04-2011, 03:31 PM
السلام عليكم ورحمة الله وبركاته
حاولت تطوير تطبيقة لفحص IPs و البورتات المفتوحة (80 و 21)
استعملت IdIcmpClientو IdTCPClinet و TIdTelnet
IdIcmpClient = لعمل ping و التاكد ان IP يعمل
IdTCPClinet = لفحص port 80
TIdTelnet = لفحص port 21
لكن البرنامج لم يعمل كما يجب
هل من حل؟
شكرا
حاولت تطوير تطبيقة لفحص 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;هل من حل؟
شكرا

