Beranda > Delphi > How to resolve a host name

How to resolve a host name

Ever needed to convert a host name to an IP number? There is no direct routine available in Delphi for this but we can always code our way through 🙂

Here’s the code with error handling:

uses
  Winsock;
...
// The IP number will be returned in string format in the sIP parameter
function HostToIP(sHost: string; var sIP: string): Boolean;
var
  aHostName: array[0..255] of Char;
  pcAddr   : PChar;
  HostEnt  : PHostEnt;
  wsData   : TWSAData;
begin
  WSAStartup($0101, wsData);
  try
    GetHostName(aHostName, SizeOf(aHostName));
    StrPCopy(aHostName, sHost);
    hostEnt := GetHostByName(aHostName);
    if Assigned(HostEnt) then
      if Assigned(HostEnt^.H_Addr_List) then begin
        pcAddr := HostEnt^.H_Addr_List^;
        if Assigned(pcAddr) then begin
          sIP := Format('%d.%d.%d.%d',
            [Byte(pcAddr[0]), Byte(pcAddr[1]), Byte(pcAddr[2]), Byte(pcAddr[3])]);
          Result := True;
        end else
          Result := False;
      end else
        Result := False
    else begin
      Result := False;
    end;
  finally
    WSACleanup;
  end;
end;
Iklan
Kategori:Delphi
  1. Belum ada komentar.
  1. No trackbacks yet.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: