如何由IP地址获取计算机名称等信息?

解决方案 »

  1.   

    function TPub.NetGetNameByIPAddr(IPAddr : String;var MacName:String): Boolean;
    var
     SockAddrIn: TSockAddrIn;
     HostEnt: PHostEnt;
     WSAData: TWSAData;
    begin
     Result := False;
     if IpAddr = '' then exit;
     try
       WSAStartup(2, WSAData);
       SockAddrIn.sin_addr.s_addr := inet_addr(PChar(IPAddr));
       HostEnt := gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET);
       if HostEnt <> nil then
         MacName := StrPas(Hostent^.h_name);
       Result := True;
     finally
       WSACleanup;
     end;
    end;
      

  2.   

    function GetIPAddress(AComputerName: string): string;
    var
      HostEnt: PHostEnt;
    begin
      HostEnt := gethostbyname(PChar(AComputerName));
      if HostEnt<> nil then
         with HostEnt^ do
            result :=Format('%d.%d.%d.%d',[ Byte(h_addr^[0]), Byte(h_addr^[1]), Byte(h_addr^[2]), Byte(h_addr^[3]) ])
      else
            result :='unKnown';
    end;
      

  3.   

    DWGZ() 哥哥的函数好象不好使,输入计算机名结果都是unKnown,连本机的名字都是这样,不知该如何是好!