program TFTPChecker;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils, IdTrivialFTP, Classes;
procedure GetData(IPList, ConfigList: string; TimeOut: integer);
var
IP, Config: TStringList;
i, j: integer;
uTFTP: TIdTrivialFTP;
MS: TMemoryStream;
begin
try
IP := TStringList.Create;
Config := TStringList.Create;
uTFTP := TIdTrivialFTP.Create(nil);
MS := TMemoryStream.Create;
try
IP.LoadFromFile(IPList);
Config.LoadFromFile(ConfigList);
for j := 0 to Config.Count - 1 do
begin
for i := 0 to IP.Count - 1 do
begin
try
uTFTP.Host := IP.Strings[i];
uTFTP.Port := 69;
uTFTP.ReceiveTimeout := TimeOut;
uTFTP.Active := True;
uTFTP.Get(Config.Strings[j], MS);
CreateDir(ExtractFilePath(ParamStr(0)) + 'download');
MS.SaveToFile(ExtractFilePath(ParamStr(0)) + 'download' + '\' +
IP.Strings[i] + '_' + Config.Strings[j]);
Writeln(IP.Strings[i] + ' ' + Config.Strings[j] + ' ... OK!');
except
Writeln(IP.Strings[i] + ' ' + Config.Strings[j] + ' ... ERROR!');
Continue;
end;
end;
end;
Writeln('Done!.');
Readln;
finally
IP.Free;
Config.Free;
uTFTP.Free;
MS.Free;
end;
except
end;
end;
begin
if (ParamStr(1) <> '') and (ParamStr(2) <> '') and (ParamStr(3) <> '') then
begin
GetData(ParamStr(1), ParamStr(2), StrToInt(ParamStr(3)));
end
else
begin
Exit;
end;
end.