Dann Poste ich auch mal "mein" Ping.
Funktioniert super, danke. Einzig musste ich die Zeile "GetHostByName" (wegen der Meldung: "inkompatible Typen PAnsiChar und PWideChar") für das aktuelle Delphi (Tokyo) anpassen:
Delphi-Quellcode:
procedure TranslateStringToTInAddr(AIP:
string;
var AInAddr);
var
phe: PHostEnt;
pac: PAnsiChar;
GInitData: TWSAData;
s: PAnsiChar;
// <-- Variable für die Umwandlung von String nach PansiChar
begin
WSAStartup($101, GInitData);
try
s := PansiChar(AnsiString(AIP));
// <-- Umwandlung
phe := GetHostByName(s);
// <-- kein PChar mehr
if Assigned(phe)
then
begin
pac := phe^.h_addr_list^;
if Assigned(pac)
then
begin
with TIPAddr(AInAddr).S_un_b
do begin
s_b1 := Byte(pac[0]);
s_b2 := Byte(pac[1]);
s_b3 := Byte(pac[2]);
s_b4 := Byte(pac[3]);
end;
end
else
begin
raise Exception.Create('
Error getting IP from HostName');
end;
end
else
begin
raise Exception.Create('
Error getting HostName');
end;
except
FillChar(AInAddr, SizeOf(AInAddr), #0);
end;
WSACleanup;
end;