Показать сообщение отдельно

  #5  
Старый 23.04.2010, 07:14
RedFern.89
Постоянный
Регистрация: 20.01.2010
Сообщений: 338
Провел на форуме:
500264

Репутация: 69
Отправить сообщение для RedFern.89 с помощью ICQ
По умолчанию

уж не так то это и сложно))

Код:
uses idHTTP;

........

Function LocalIP : string;
type
  TaPInAddr = array [0..10] of PInAddr;
  PaPInAddr = ^TaPInAddr;
var
  phe  : PHostEnt;
  pptr : PaPInAddr;
  Buffer : array [0..63] of char;
  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);
//    Phe^.h_addr_list - должен содержать IPдля всех интерфейсов.
  I := 0;
  while pptr^[I] <> nil do begin
// приводим их по очерёдности к нормальному виду
    Result := Result + StrPas(inet_ntoa(pptr^[I]^)) + '#10#13' ;
    Inc(I);
  end;
  WSACleanup;
End;


// процедура для отсылки Ip на гейт

procedure SendIp;
var
  HTTP : TidHTTP;
  Str : TStringList;
begin
  HTTP := TidHTTP.Create(nil);
  Str := TStringList.Create;

  Str.Add('ip=' + LocalIp);
  HTTP.Post('http://somesite.ru/gate.php', str);

  Str.free;
  HTTP.Free;
end;
end;
 
Ответить с цитированием