Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Прокомментируйте код


Автор: Vokunya 18.4.2009, 20:34
Код

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;


Функция возвращает IP адрес.
Если не в лом, прокомментируйте, пожалуйста, построчно...  А то диплом защищать: smile  и если спросят, то сказать, что взял готовый код, я думаю ответ комиссию не очень устроит smile 

Автор: Matematik 18.4.2009, 21:47
WSAStartup - Инициялизация Windows Socket версси №1
GetHostName - Получение имени локального хоста
GetHostByName - Преобразование имени хоста в адрес
iNet_ntoa - Преобразование ip адреса в строку
WSACleanup - Деинициализация winsock

Автор: Vokunya 18.4.2009, 22:41
и еще немного конкретики.... smile 
Код

if GetHostName(@Buf, 128) = 0 

параметр '128' - ?

Код

P: PHostEnt;

PHostEnt - что за тип?

Код

iNet_ntoa(PInAddr(p^.h_addr_list^)^)

вот именно параметр - PInAddr(p^.h_addr_list^)^?

Автор: Данкинг 18.4.2009, 22:46
Цитата(Vokunya @  18.4.2009,  23:41 Найти цитируемый пост)
PHostEnt - что за тип?

Ну так посмотри, в каком модуле он определён. Правой кнопкой кликни и "найти описание".

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)