甩分啦,请教高手,如何用delphi来获取公网ip??

解决方案 »

  1.   

    可以用 netstat获取IP 
    用delphi 执行保存获得的记录
      

  2.   

    把所有IP都取出来
    谁知道那个是共网IP?
      

  3.   

    http://www.nssoft.net/showdoc.asp?did=862
    看看,或许有用
      

  4.   

    http://www.lihuasoft.net/article/show.php?id=237
      

  5.   

    procedure GetIPAddr(List: TStrings);
    type
        TaPInAddr = array [0..100] of PInAddr;
        PaPInAddr = ^TaPInAddr;
    var
        phe  : PHostEnt;
        pptr : PaPInAddr;
        Buffer : array [0..63] of char; 
        I    : Integer;
        GInitData      : TWSADATA;
    begin
        List.Clear;
        WSAStartup($101, GInitData);
        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
          List.Add(StrPas(inet_ntoa(pptr^[I]^)));
          Inc(I);
        end; 
        WSACleanup;
    end
      

  6.   

    WGYKING非常感谢
    不过我试了试,显示的不是公网ip
      

  7.   

    不行?
    这是取得本机所有IP
    我也不知道共网IP怎么判断
    没有注意过
      

  8.   

    WGYKING
     可不可以试试?
     好像只是取得本机内网ip
      

  9.   

    WGYKING
     ok了,成功了,
     但是现在有一个问题,为什么在公司的机子上只能显示本机的内网ip,并不显示公网ip
     可是在家又试了一下,却可以把本机的所有ip都能显示出来。
     请执教~~
     
     谢谢了
      

  10.   

    我觉得是不是和adsl  modem 的设置有关系?
    一个是路由连接,另外一个是EnterNet 500 ,利用 ppp 连接。初学者,请高手们指教!不胜感激~~~~~~
      

  11.   

    给你地址:看看
    http://community.csdn.net/Expert/topic/3140/3140145.xml?temp=.4623834