Форум: "Сети";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.048 c