解析IP地址为主机域名。
使用 WinSock 单元;
过程如下:
function IPAddrToName(IPAddr : String): String;
var
SockAddrIn: TSockAddrIn;
HostEnt: PHostEnt;
WSAData: TWSAData;
begin
WSAStartup($101, WSAData);
SockAddrIn.sin_addr.s_addr:= inet_addr(PChar(IPAddr));
HostEnt:= gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET);
if HostEnt<>nil then
begin
result:=StrPas(Hostent^.h_name)
end
else
begin
result:='';
end;
end;
测试时请在在线状态。
测试代码:
var
Name: string;
begin
Name := InputBox('输入对方主机IP', '主机IP地址:', '');
showmessage(IpAddrToName(Name));
end;