Показать сообщение отдельно
  #7  
Старый 14.04.2011, 09:03
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

1:
Код:
function ip: String;
var
  WSAData: TWSAData;
  name: array [0..$ff] of Char;
  HostEnt: PHostEnt;
begin
  Result:='';
  if WSAStartup(MakeWord(2, 2), WSAData)<>0 then Exit;
  if gethostname(name, Length(name))=0 then
  begin
    HostEnt:=gethostbyname(name);
    if HostEnt<>nil then Result:=inet_ntoa(PInAddr(HostEnt^.h_addr_list^)^);
  end;
  WSACleanup;
end;
2:
Код:
function ips: String;
type
  TArrPInAddr = array [0..7] of PInAddr;
  PArrPInAddr = ^TArrPInAddr;
var
  WSAData: TWSAData;
  name: array [0..$ff] of Char;
  HostEnt: PHostEnt;
  ArrPInAddr: PArrPInAddr;
  i: Integer;
begin
  Result:='';
  if WSAStartup(MakeWord(1, 1), WSAData)<>0 then Exit;
  if gethostname(name, Length(name))=0 then
  begin
    HostEnt:=gethostbyname(name);
    if HostEnt<>nil then
    begin
      ArrPInAddr:=PArrPInAddr(HostEnt^.h_addr_list);
      i:=0;
      while ArrPInAddr^[i]<>nil do
      begin
        Result:=Result+StrPas(inet_ntoa(ArrPInAddr^[i]^))+';';
        Inc(i);
      end;
    end;
  end;
  WSACleanup;
end;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием