Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

IP Adress


P.D.YU ©   (2004-05-08 16:42:00) 

как мне определить ип локального подключения ? код ниже возвращает инетовкий
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);
 I := 0;
 while pPtr^[I] <> nil do
 begin
   Result := inet_ntoa(pptr^[I]^);
   Inc(I);
 end;
 WSACleanup;
end;


Rouse_   (2004-05-08 17:48:00) [1]

Код неверен в принципе. Почему? Можно обьяснить...
procedure TForm1.Button1Click(Sender: TObject);
var
 WSAData: TWSAData;
 p: PHostEnt;
 Name: array [0..$FF] of Char;
begin
WSAStartup($0101, WSAData);
GetHostName(name, $FF);
p := GetHostByName(Name);
while Assigned(p.h_addr_list^) do
begin
  memo1.Lines.Add(inet_ntoa(PInAddr(p.h_addr_list^)^));
  inc(p.h_addr_list);
end;
WSACleanup;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо