Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.25;
Скачать: CL | DM;

Вниз

Winsock: Помогите получить адреса из списка   Найти похожие ветки 

 
Micah'GF   (2004-05-30 11:04) [0]

Есть такая структура:
 hostent = record
   h_name: PChar;
   h_aliases: ^PChar;
   h_addrtype: Smallint;
   h_length: Smallint;
   case Byte of
     0: (h_addr_list: ^PChar);
     1: (h_addr: ^PChar)
 end;


Заполняю эту структуру так:
 GetHostName(buf,255);
 RemoteHost :=  GetHostByName(buf);

..h_addr_list должна теперь указывать на список IP-адресов..  извлекаю так:
 Adress.S_addr := longint(pointer(RemoteHost^.h_addr_list^)^);
..извлекается только первый.. Пытаюсь так:
 Adress.S_addr := longint(pointer(RemoteHost^.h_addr_list^[2])^);
выдает ошибку... В списке точно несколько IP - h_length показывает 4.
Как правильно сделать?


 
Verg ©   (2004-05-30 12:12) [1]


var Adr : ^PInAddr;
    Ph  : PHostEnt;
............
   Adr := pointer(Ph.h_addr_list);
   while Adr^ <> nil do
   begin
     Writeln(inet_ntoa(Adr^^));
     inc(Adr);
   end;


 
Micah'GF   (2004-05-30 21:17) [2]

спасибо.. помогло:
RemoteHost : PHostEnt;
Adress: TInAddr;
PInAdress: ^PInAddr;

...
   RemoteHost := GetHostByName(buf);
   PInAdress := pointer(RemoteHost^.h_addr_list^);
   if PInAdress^ = NIL then
     Adress.S_addr := htonl($7F000001)  (* 127.0.0.1 *)
   else begin
     inc(PInAdress, select);
     Adress.S_addr := longint(PInAdress^);
   end;



Страницы: 1 вся ветка

Текущий архив: 2004.07.25;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.101 c
11-1077827486
ALeX.B.
2004-02-26 23:31
2004.07.25
Как получить доступ к каждому из 4-х полей в IPEdit?


3-1088693288
1g0r
2004-07-01 18:48
2004.07.25
глюк MySQL + dbExpress = "dbExpress Error: Invalid Username/P...


3-1088454372
Sir John
2004-06-29 00:26
2004.07.25
вопрос по ClientDataSet


3-1088552573
Alexey Leonchik
2004-06-30 03:42
2004.07.25
Быстрый поиск по первым символам


14-1088926731
Dan
2004-07-04 11:38
2004.07.25
Как заставить Delphi инсталлиться только для одного юзера