如何在dehpi中调出本地计算机的IP地址?

解决方案 »

  1.   

    1.调用IPCONFIG
    2.通过API函数 GETHOSTNAME 得到
      

  2.   

    {=================================================================
      功  能: 返回本机的局域网Ip地址
      参  数: 无
      返回值: 成功:  True, 并填充LocalIp   失败:  False
      备 注:
      版 本:
         1.0  2002/10/02 21:05:00
    =================================================================}
    function GetLocalIP(var LocalIp: string): Boolean;
    var
        HostEnt: PHostEnt;
        Ip: string;
        addr: pchar;
        Buffer: array [0..63] of char;
        GInitData: TWSADATA;
    begin
      Result := False;
      try
        WSAStartup(2, GInitData);
        GetHostName(Buffer, SizeOf(Buffer));
        HostEnt := GetHostByName(buffer);
        if HostEnt = nil then Exit;
        addr := HostEnt^.h_addr_list^;
        ip := Format('%d.%d.%d.%d', [byte(addr [0]),
              byte (addr [1]), byte (addr [2]), byte (addr [3])]);
        LocalIp := Ip;
        Result := True;
      finally
        WSACleanup;
      end;
    end;
      

  3.   

    function GetHostIP: String;
    type
      TaPInAddr = Array[0..10] of PInAddr;
      PaPInAddr = ^TaPInAddr;
    var
      phe: PHostEnt;
      pptr: PaPInAddr;
      Buffer: Array[0..63] of Char;
      I: Integer;
      GInitData: TWSAData;
    begin
      WSAStartup($101,GInitData);
      GetHostName(Buffer,SizeOf(Buffer));
      phe:= GetHostByName(buffer);
      if phe = nil then Exit;
      pPtr:= PaPInAddr(phe^.h_addr_list);
      I:= 0;
      Result:=inet_ntoa(pptr^[I]^);
      WSACleanup;
    end;