Thema: Delphi IP's anpingen

Einzelnen Beitrag anzeigen

Bohrstein

Registriert seit: 10. Aug 2016
1 Beiträge
 
#15

AW: Re: IP's anpingen

  Alt 22. Feb 2018, 09:17
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;
  Mit Zitat antworten Zitat