局域网客户端怎样写代码取得代理服务器上网的动态IP

解决方案 »

  1.   

    function getIPs: TStrings;
    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:=TStringList.Create;
      Result.Clear;
      GetHostName(Buffer,SizeOf(Buffer));
      buffer:='ridant';
      phe := GetHostByName(buffer);
      if phe = nil then
       begin
       Exit;
       end;
       pPtr := PaPInAddr(phe^.h_addr_list);
       I := 0;
       while pPtr^[I] <> nil do
       begin
        Result.Add(inet_ntoa(pptr^[I]^));
        Inc(I);
       end;
      WSACleanup;
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    memo1.Lines:=GetIps;
    end;end.
    这段代码在客户端机器上运行只能得到服务的的本地ip(1个)。
    在服务器上运行,能得到3个,一个是接ADSL网卡的ip,一个是接内部局域网
    的ip,另外一个就是ADSL拔号上网的ip。
    誰能告诉我怎样在客户端也能得服务器上的3个ip地址?