如题

解决方案 »

  1.   

    function GetLocalIP: 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);
      Result := '';
      GetHostName(Buffer, SizeOf(Buffer));
      phe := GetHostByName(buffer);
      if phe = nil then Exit;
      pptr := PaPInAddr(Phe^.h_addr_list);
      I := 0;
      while pptr^[I] <> nil do
      begin
        result := StrPas(inet_ntoa(pptr^[I]^));
        Inc(I);
      end;
      WSACleanup;
    end;
      

  2.   

    这是从一个很大得,功能很多得程序里面找出来得,要不你把mail告诉我,我发给你
      

  3.   

    from moto骆la简单方法:拖一个TIdIPWatch到窗体上
    IdIPWatch1.CurrentIP  可以直接得到
      

  4.   

    这些方法不好使的。你用用就知道了。
    我以前是找了一个朋友的web server,反正他们也是正规的公司,专线上网,24小时可访问,我在那儿放了一个页面,仅仅返回client的ip地址。
    然后用一个http的控件访问这个页面,取回数据来简单处理一下就得到自己的internet拨号ip。
    这个方法非常可靠,编程也方便。