怎么从Internt域名中得到IP地址?(50分)

  • 主题发起人 主题发起人 青侠
  • 开始时间 开始时间

青侠

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在delphi中从域名中得到IP地址如: www.163.com ,www.sina.com.cn
 
把域名转化为IP地址

uses winsock;
function GetIP(Name:string) : string;
type
TaPInAddr = array [0..10] of PInAddr;
PaPInAddr = ^TaPInAddr;
var
phe :PHostEnt;
pptr : PaPInAddr;
I : Integer;
GInitData : TWSADATA;
begin
WSAStartup($101, GInitData);
Result := '';
phe :=GetHostByName(pchar(Name));
pptr := PaPInAddr(Phe^.h_addr_list);
result:=StrPas(inet_ntoa(pptr^[0]^));
WSACleanup;
end;
反之:
function GetDomainName(Ip:string):string;
var
pH:PHostent;
data:twsadata;
ii:dword;
begin
WSAStartup($101, Data);
ii:=inet_addr(pchar(ip));
pH:=gethostbyaddr(@ii,sizeof(ii),PF_INET);
if (ph<>nil) then
result:=pH.h_name
else
result:='';
WSACleanup();
end;
 
系统自带有icmp.dll,好像可以利用它来实现。
或则利用indy控件。里面都有说明的。
 
到这里看看,俺写的一个函数,可以实现这个功能。
不过那个楼主在得到答案以后就不见了,当初为了得到这个答案可是提前了至少半月,哈哈。

http://www.delphibbs.com/delphibbs/dispq.asp?lid=1874210

www.163.com的有:
202.108.36.156、202.108.36.167、202.108.36.172
202.108.36.196、202.108.36.153、202.108.36.155

 
多人接受答案了。
 
后退
顶部