Главная страница
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.037 c
1-1089804609
Artem123
2004-07-14 15:30
2004.07.25
Найти нужный TreeNode ?


14-1088862567
ИМХО
2004-07-03 17:49
2004.07.25
Русские теннисистки продолжают рулить!


1-1089274152
sashok
2004-07-08 12:09
2004.07.25
Выполнение процедур из dll


4-1087278653
Tolea
2004-06-15 09:50
2004.07.25
Перенаправить стандартны ввод с клавиатуры


1-1089720193
mOOx_
2004-07-13 16:03
2004.07.25
Сравнение строк для сортировки (Алгоритм)