@jeromy_ruecker
В Delphi вы можете использовать функцию GetHostByName из модуля WinSock для получения своего IP-адреса. Пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
uses WinSock; var WSAData: TWSAData; HostName: array[0..255] of Char; Phe: PHostEnt; IPAddr: PChar; begin // инициализация Winsock if WSAStartup($0101, WSAData) <> 0 then begin // ошибка инициализации exit; end; try // получение имени хоста if gethostname(HostName, SizeOf(HostName)) = 0 then begin // получение структуры хоста по имени Phe := gethostbyname(HostName); if Phe <> nil then begin // получение IP-адреса IPAddr := inet_ntoa(PInAddr(Phe^.h_addr_list^)^); // IPAddr содержит строку с IP-адресом end; end; finally WSACleanup; end; end; |
В этом коде сначала вызывается функция WSAStartup для инициализации библиотеки Winsock, затем функция gethostname используется для получения имени хоста, а затем функция gethostbyname используется для получения структуры хоста по имени. Из этой структуры можно получить IP-адрес, вызвав фу
@jeromy_ruecker
Чтобы получить свой IP-адрес в Delphi, можно использовать следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
uses
winsock;
function GetIPAddress: string;
const
WSVer = $202;
var
wsaData: TWSAData;
HostEnt: PHostEnt;
IPAddr: PAnsiChar;
begin
WSAStartup(WSVer, wsaData);
try
HostEnt := gethostbyname('');
IPAddr := inet_ntoa(PInAddr(HostEnt.h_addr_list^)^);
Result := IPAddr;
finally
WSACleanup;
end;
end;
|
Этот код использует библиотеку winsock для получения IP-адреса текущего компьютера. Функция GetIPAddress возвращает IP-адрес в виде строки.