不用这么麻烦的,GetHostName是一个api函数,可以直接调用。具体的可以查看
msdn的。

解决方案 »

  1.   

    如果是要找本机的IP地址,用winipcfg不就得了,如果你说要用在程序中,那就读注册表喽,那可是个好东东。[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000]
    下面即可以找到。
    至于主机名也可以在相关的地方找到。
      

  2.   

    uses Winsock;function ShowHostName:integer;
    var
      wVersionRequested : WORD;
      wsaData : TWSAData;
      p : PHostEnt;
      s : array[0..128] of char;
      p2 : pchar;
      s1:string;
      vr ,vb                 :Boolean;
      lpBuffer               :PChar;
      nSize                  :DWORD;
    begin
    {启动 WinSock}
    try
      nSize := 1000;
      GetMem(lpBuffer, 1000);
      vb:= GetComputerName(lpBuffer,nSize);
      if vb  then
         DMPublic.sLoginComputerName :=lpBuffer;
      if vb then
      FreeMem(lpBuffer);  wVersionRequested := MAKEWORD(1, 1);
      WSAStartup(wVersionRequested, wsaData);{计算机名}  GetHostName(@s, 128);
      p := GetHostByName(@s);
    //  ShowMessage(Format('Computer name is ''%s''.', [p^.h_Name]));{IP地址}
      p2 := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
    //  ShowMessage(Format('IP address is %s.',[p2]));
      s1 :=string(p2);
      sIP       :=s1;
      sSoftVer  :='2002+1.0 001 ';
      WSACleanup;
      except
      sIP :='Ip error'
      end;end;