VC语言

本类阅读TOP10

·VC++ 学习笔记(二)
·用Visual C++打造IE浏览器(1)
·每个开发人员现在应该下载的十种必备工具
·教你用VC6做QQ对对碰外挂程序
·Netmsg 局域网聊天程序
·Windows消息大全
·VC++下使用ADO编写数据库程序
·VC++学习笔记(四)
·非法探取密码的原理及其防范
·怎样在VC++中访问、修改注册表

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
将某一主机域名解析为IP地址

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

将某一主机域名解析为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()




相关文章

相关软件