procedure GetIPList(IPList: TStringList); 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); GetHostName(Buffer, SizeOf(Buffer)); PHE := GetHostByName(Buffer); if not Assigned(PHE) then Exit; PPtr := PaPInAddr(PHE^.h_addr_list); I := 0; while pptr^[I] <> nil do begin IPList.Add(StrPas(inet_ntoa(PPtr^[I]^))); Inc(I); end; WSACleanup; end; |
|