將某一主機域名解析為IP地址。 (轉)

worldblog發表於2007-12-04
將某一主機域名解析為IP地址。 (轉)[@more@]


將某一主機域名解析為。
使用 WinSock 單元;
過程如下:
function HostToIP(Name: string; var Ip: string): Boolean;
var
  wsdata : TWSAData;
  hostName : array [0..255] of char;
  hostEnt : PHostEnt;
  addr : PChar;
begin
  Wtartup ($0101, wsdata);
  try
  gethostname (hostName, sizeof (hostName));
  StrPCopy(hostName, Name);
  hostEnt := gethostbyname (hostName);
  if Assigned (hostEnt) then
  if Assigned (hostEnt^.h_addr_list) then begin
  addr := hostEnt^.h_addr_list^;
  if Assigned (addr) then begin
  := Format ('%d.%d.%d.%d', [byte (addr [0]),
  byte (addr [1]), byte (addr [2]), byte (addr [3])]);
  Result := True;
  end
  else
  Result := False;
  end
  else
  Result := False
  else begin
  Result := False;
  end;
  finally
  WSACleanup;
  end
end;

 

測試時請在線上狀態。

測試程式碼:
var
IP: string;
: string;
begin
  DNS := InputBox('輸入DNS域名', '主機名稱:', '');
  if HostToIp(DNS, IP) then showmessage(IP);
end;
作者:Latfi Baran

 


 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-988452/,如需轉載,請註明出處,否則將追究法律責任。

相關文章