如题

解决方案 »

  1.   

    就用普通的得到静态IP的方法应该可以.
    取出来的其实是个IP地址列表.
    其中就包含了公网的IP(如果有的话)
      

  2.   

    uses IdStack;procedure getcomputerip(outdata:Tstrings);
    var
      AIdStack:TIdStack;
    begin
     AIdStack:=TIdStack.CreateStack;
     try
     outdata.Text:=AIdStack.LocalAddresses.Text;//获取本地IP地址列表
     finally
     AIdStack.free;
     end;
    end;
      

  3.   

    getit911(Windows转Linux中) 
    得不到公网IP
      

  4.   

    如果你是在局域网内,抱歉。。没有办法!!!!!!!
    除非连接一个internet上的服务器,由它返回你的ip
      

  5.   

    uses winsock;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)and(pptr^[I] = A类地址) do begin
          result:=StrPas(inet_ntoa(pptr^[I]^));
          Inc(I);
        end;
        WSACleanup;
    end;
      

  6.   

    To: cdkogh(xp++) 
    可是还是得不到啊!!
    我是局域网,ADSL,路由
      

  7.   

    如果你是在局域网内,抱歉。。没有办法!!!!!!!
    除非连接一个internet上的服务器,由它返回你的ip
      

  8.   

    将IP列表中的保留地址192.168.x.x/172.16.x.x/10.x.x.x全排除了,剩下的即是...
      

  9.   

    用ADSL路由上网,本机没有公网IP,其IP只是由ADSL中的DHCP服务动态分配的局域网IP
      

  10.   

    这不不简单,你找一个ASP的空间,上面写一个ASP程序,再用INDY的http组件访问这个ASP程序不就有本机的外网IP了!
    这个ASP程序如下:
    <html>
    <%
    sip=Request.ServerVariables("LOCAL_ADDR")
    cip=Request.ServerVariables("REMOTE_ADDR")
    %>
    <body>
    IP=<%=cip%>
    </body>
    </html>
      

  11.   

    to: xiaochensu(拒绝水的鱼) 
    idHttp怎么用啊,没用过