我的机器装了ADSL,我编写程序得到自己的IP,可老是得到同样的IP(估计是网卡的IP),如何才能得到真正的IP?

解决方案 »

  1.   

    adsl将动态生成另外ip。比如ipconfig会显示原ip。ipconfig /all会显示所有ip。
    贴出你取ip方式
      

  2.   

    我就是用NMMsg控件的LocalIP显示的啊,您说该怎么办?
      

  3.   

    你很可能只取了本机上的第一个ip地址,你尝试把它多址主机,穷尽所有的ip吧!
      

  4.   

    多谢各位的关心,我现在用了这段代码,可以正确取得IP
    uses winsockfunction LIP : 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;