IP адрес

Задача

Получение IP адреса компьютера

Решение

uses Winsock;

function LocalIP: string;
type
  TaPInAddr = array [0 .. 10] of PInAddr;
  PaPInAddr = ^TaPInAddr;
var
  phe: PHostEnt;
  pptr: PaPInAddr;
  Buffer: array [0 .. 63] of Ansichar;
  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 := Result + ' ' + StrPas(inet_ntoa(pptr^[I]^));
    Inc(I);
  end;
  WSACleanup;
end;

Комментарий

Функция возвращает список IP адресов активных соединений (может быть активным несколько соединений, у каждого соединения будет свой IP-адрес).

Верификация

Delphi XE5, Win7

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

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