请教各位,如何获取 adsl拨号的动态ip地址? 
我用的以下这个自定义的函数可以获得本机的内网的固定ip地址,
但是我用adsl拨号上网后 的这个动态ip地址无法获得,请教应该如何做,谢谢。function LocalIP : 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;

解决方案 »

  1.   

    uses Winsock;
    function LocalIP1 : 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.   

    所谓的获得动态IP就是在分配完IP后,获取本机IP,获取本机IP的例子:
    http://218.56.11.178:8020/web/technology.aspx
    ->下载基地->例程-硬件控制->获取本机IP
      

  3.   

    jpyc(九品御厨)    你所提供的这个程序和我在书上看到的是一样的
    它可以获取本地的网卡ip地址,不过对于动态的 adsl ip地址是不能获得的有没有其他的方法
      

  4.   

    对于这个问题以前只是看到过,没有具体的用过
    不过好像要用到下面的函数
    function RasGetProjectionInfo;external
    'Rasapi32.dll' name 'RasGetProjectionInfoA';
    楼主可以查一下msdn上面的说明