根据IP取得局域网内的计算机名
Function GetNameByIP(MIP:string; var Name:string):boolean;
var
  PHt:PHostEnt;
  WSData: TWSAData;
  i:Word;
  j:integer;
  k:u_long;
begin
  result:=false;
  i:=MAKEWORD(1,1);
  if WSAStartup(i,WSData)<>0 then exit;
  k:=inet_addr(PChar(MIP));
  PHt:=gethostbyaddr(@k,4,PF_INET);
  if PHt=nil then begin
     j:=WSAGetLastError;
     Name:='Error:'+inttostr(j-WSABASEERR);
  end else begin
     Name:=PHt.h_name;
     result:=true;
  end;
  WSACleanup;
end;

解决方案 »

  1.   

    取得局域网内的计算机名
    Function GetNameByIP(MIP:string; var Name:string):boolean;
    var
      PHt:PHostEnt;
      WSData: TWSAData;
      i:Word;
      j:integer;
      k:u_long;
    begin
      result:=false;
      i:=MAKEWORD(1,1);
      if WSAStartup(i,WSData)<>0 then exit;
      k:=inet_addr(PChar(MIP));
      PHt:=gethostbyaddr(@k,4,PF_INET);
      if PHt=nil then begin
         j:=WSAGetLastError;
         Name:='Error:'+inttostr(j-WSABASEERR);
      end else begin
         Name:=PHt.h_name;
         result:=true;
      end;
      WSACleanup;
    end;
      

  2.   

    取得局域网内的计算机名
    Function GetNameByIP(MIP:string; var Name:string):boolean;
    var
      PHt:PHostEnt;
      WSData: TWSAData;
      i:Word;
      j:integer;
      k:u_long;
    begin
      result:=false;
      i:=MAKEWORD(1,1);
      if WSAStartup(i,WSData)<>0 then exit;
      k:=inet_addr(PChar(MIP));
      PHt:=gethostbyaddr(@k,4,PF_INET);
      if PHt=nil then begin
         j:=WSAGetLastError;
         Name:='Error:'+inttostr(j-WSABASEERR);
      end else begin
         Name:=PHt.h_name;
         result:=true;
      end;
      WSACleanup;
    end;
      

  3.   

    如何使用
    1。gethostname(char *,int)
    2。windows.getcomputername()