会员: 密码:  免费注册 | 忘记密码 | 会员登录 网页功能: 加入收藏 设为首页 网站搜索  
技术文档 > Delphi
将某一主机域名解析为IP地址
发表日期:2003-05-28 00:00:00作者: 出处:  

将某一主机域名解析为IP地址。

使用 WinSock 单元;

过程如下:

function HostToIP(Name: string; var Ip: string): Boolean;

var

 wsdata : TWSAData;

 hostName : array [0..255] of char;

 hostEnt : PHostEnt;

 addr : PChar;

begin

 WSAStartup ($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

     IP := 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;

DNS: string;

begin

 DNS := InputBox('输入DNS域名', '主机名称:', '');

 if HostToIp(DNS, IP) then showmessage(IP);

end;

作者:Latfi Baran

我测试Kingron给出的用法时,hostEnt老是=nil。

后来我在用gethostbyname(...)之前,加入WSAStartup(...),终于一切OK。

Winsock单元中没有getaddressbyname()

返回顶部】 【打印本页】 【关闭窗口

关于我们 / 给我留言 / 版权举报 / 意见建议 / 网站编程QQ群   
Copyright ©2003- 2024 Lihuasoft.net webmaster(at)lihuasoft.net 加载时间 0.00429