How to resolve a host name #25
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;
Author: | Unknown |
---|---|
Added: | 2007/06/02 |
Last updated: | 2007/06/02 |