解析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;