4
我使用下面的代码,结果是正确的,但gethostbyaddr
大约需要30秒。gethostbyaddr太慢
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
Result := StrPas(Hostent^.h_name)
else
Result := '';
end;
问候 艾伦
这通常是一个DNS问题。 – sje397 2010-08-10 07:35:52
通常情况,是的,但是直到我们从代码中获得时间后,我们才肯定知道。否则,我会马上将它推到SU上。 – paxdiablo 2010-08-10 07:42:30
比较'nslookup'和这个调用,看它是否有很大的不同。如果没有,那肯定是一个DNS问题。 – 2010-08-15 13:30:44