有什么直接的办法利用控件得IP吗?

解决方案 »

  1.   

    使用ICS控件就可以的
    Indy的就没研究过这个问题http://lysoft.7u7.net
      

  2.   

    uses IdStack
    就是本机IP地址列表
    IdStack.GStack.LocalAddresses.Text;
      

  3.   

    谢谢楼上。
    To 911,为什么可以将该IP地址显示在edit中,而无法赋值给indy.binding呢?提示不是整数。
      

  4.   

    有什么好办法binging这个本机的ip吗?现在binging.items[0].ip = 本机IP,提示.xx不是整数。
      

  5.   

    ///获取本地ip地址的函数
    Function Tform1.GetLocalIp(InternetIP:boolean):shortstring;
      type
        TaPInAddr = Array[0..10] of PInAddr;
        PaPInAddr = ^TaPInAddr;
      var
        phe: PHostEnt;
        pptr: PaPInAddr;
        Buffer: Array[0..63] of Char;
        I: Integer;
        GInitData: TWSAData;
        IP: shortstring;
    begin
        Screen.Cursor := crHourGlass;
        try
          WSAStartup($101, GInitData);
          IP:='0.0.0.0';
          GetHostName(Buffer, SizeOf(Buffer));
          phe := GetHostByName(buffer);
          if phe = nil then
          begin
            ShowMessage(IP);
            Result:=IP;
            Exit;
          end;
          pPtr := PaPInAddr(phe^.h_addr_list);
          if InternetIP then
            begin
              I := 0;
              while pPtr^[I] <> nil do
                begin
                  IP := inet_ntoa(pptr^[I]^);
                  Inc(I);
                end;
            end
          else
            IP := inet_ntoa(pptr^[0]^);
          WSACleanup;
          Result:=IP;//如果上网则为上网ip否则是网卡ip
        finally
          Screen.Cursor := crDefault;
        end;
    end;