Страницы

Поиск по вопросам

понедельник, 13 апреля 2020 г.

IP адрес в Delphi

#delphi #ip_address

                    
Как программно узнать свой IP адрес?    


Ответы

Ответ 1



Можно, например, так: function GetIP:string; var WSAData: TWSAData; p: PHostEnt; name: array [0..255] of AnsiChar; begin WSAStartup($0101, WSAData); gethostname(name, 256); p := gethostbyname(name); result := inet_ntoa(PInAddr(P.H_ADDR_LIST^)^); WSACleanup; end;

Ответ 2



function TForm2.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



uses WinSock; function GetLocalIP: String; const WSVer = $101; var wsaData: TWSAData; P: PHostEnt; Buf: array [0..127] of Char; begin Result := ''; if WSAStartup(WSVer, wsaData) = 0 then begin if GetHostName(@Buf, 128) = 0 then begin P := GetHostByName(@Buf); if P <> nil then Result := iNet_ntoa(PInAddr(p^.h_addr_list^)^); end; WSACleanup; end; end;

Комментариев нет:

Отправить комментарий