Da ich so ein verfahren auch gut gebrauchen kann ... schau mal ob das so ok ist bei meinen Programm bleibt er in der Funktion sthen

vieleicht ist die WaitTime zugroß (irgentwo habe ich mal gelesen das man da 3 Sec macht).
Delphi-Quellcode:
function TForm1.CheckOfMailServer(DNSServer, Adresse,
MailIPAdress: String): Boolean;
var
idDNSResolver: TIdDNSResolver;
i: Integer;
a: TARecord;
begin
Result := False;
idDNSResolver := TIdDNSResolver.Create(self);
try
idDNSResolver.QueryResult.Clear;
idDNSResolver.Host := DNSServer;
idDNSResolver.QueryType := [qtA];
try
idDNSResolver.Resolve(Adresse);
except
idDNSResolver.QueryResult.Clear;
end;
if idDNSResolver.QueryResult.Count <> 0 then
begin
for i := 0 to Pred(idDNSResolver.QueryResult.Count) do
begin
if idDNSResolver.QueryResult.Items[i] is TARecord then
begin
a := (idDNSResolver.QueryResult.Items[i] as TARecord);
if a.IPAddress = MailIPAdress then
begin
Result := True;
idDNSResolver.Free;
Exit;
end;
end;
end;
end;
finally
idDNSResolver.Free;
end;
end;
Programmieren ..... .