Как получить IP компьютера?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

trexxet
GetHostByName() - возвращает целый набор данных о компьютере. Из него нас интересует только одно поле:
h_addr_list - список IP-адресов присвоеных компьютеру. Это специфический для винды тип списка массивов байт - двойной указатель, где отдельные значения отделены друг от друга символом NULL (NIL), а заканчивается список двойным NULL, поэтому и разыменовывается он так интересно:
PInAddr(P.h_addr_list^)^
т.е. сначала берётся значение из указателя на список и приводится к типу PInAddr, а потом ещё раз берётся значение из указателя на PInAddr.
Аватара пользователя
Brainenjii
энтузиаст
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Сообщение Brainenjii »

Код: Выделить всё

Function getMyIP: String;
Begin
  Result := '127.0.0.1';
End;
Ответить