delphi中获得本机IP地址的函数是什么?,或者win32中有没有那个API可是实现这个功能

解决方案 »

  1.   

    靠,你不会调用系统的API函数吗?
      

  2.   

    //以下函数用以得本机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;
      

  3.   

    请参阅:http://www.delphiok.com/bcjq/all/69.htm
      

  4.   

    //获得IP
    function Tfrmmain.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 := inet_ntoa(pptr^[I]^);
            Inc(I);
        end;
        WSACleanup;
    end;
      

  5.   

    我执行到WSAStartup($101,GInitData);时说访问违例,地址00000000出错,不知道是什么原因
      

  6.   

    delphi6的Indy Misc控件页的IdIPWatch控件的LocalIP属性可以很轻松的实现