Форум: "Сети";
Текущий архив: 2004.02.29;
Скачать: [xml.tar.bz2];
ВнизСетевые девайсы и их адреса... Найти похожие ветки
← →
Yaro (2003-12-23 04:54) [0]Ребята, какой функцией можно узнать о доступных в системе IP-адресах и что они собой представляют? На текущий момент делаю следующим образом:
...........................................
program Project1;
{$APPTYPE CONSOLE}
uses
WinSock2, Windows;
type
TPArr = array of Pointer;
var
wsadata: TWSAData; // Инициализация WinSock.
s: TSocket; // Хэндл сокета.
name: PChar; // Имя энтого компа (хоста).
phe: PHostEnt; // информация об этом компе (хосте).
sa: TSockAddrIn; // Адрес хоста
i: integer;
Fin: boolean = False;
begin
GetMem(name, 128);
WSAStartup(MAKEWORD(2,2), wsadata);
gethostname(name, 128); // Получаем имя этого хоста
phe := gethostbyname(name); //получаем информацию об этом хосте (фигню какую-то, а не информацию)
i := 0;
repeat
s := socket(AF_INET, SOCK_RAW, IPPROTO_IP);
ZeroMemory(@sa, sizeof(TSockAddrIn));
sa.sin_family := AF_INET;
try
sa.sin_addr.s_addr := PInAddr(TPArr(phe^.h_addr_list)[i])^.S_addr;
except
Fin := True;
end;
if not Fin then
if bind(s, @sa, 128) = 0
then Writeln("Bind #", i, " Ok: ", Inet_NToA(sa.sin_addr))
else Writeln("Bind #", i, " Error: ", WSAGetLastError);
closesocket(s);
inc(i);
until (Fin);
WSACleanup;
readln;
end.
.............................
Меня терзают смутные сомения: все это делается не таким образом, темболее, что я не получаю информацию, которая должна быть предоставлена пользователю: Имена EtherNet адаптеров и их адреса, количество и адреса текущих RAS соединений (а так же имена существующих но не активных RAS соединений).
В общем думаю я достаточно точно дал понять что мне необходимо.
Да и еще... Не скажете ли мне зачем мы делаем бинд, после создания сокета (нафиг он тогда вообще нужен?)? и еще ... можно ли производить несколько биндов в пределах одного сокета (тогда все понятно, но зачем это нужно?)?
Спасибо за внимание!
← →
Verg (2003-12-23 11:30) [1]http://delphimaster.net/view/6-1071815293/
> , что я не получаю информацию, которая должна быть предоставлена
> пользователю: Имена EtherNet адаптеров и их адреса, количество
> и адреса текущих RAS соединений (а так же имена существующих
> но не активных RAS соединений).
Где ты вычитал, что эта информация должна быть предоствалена при таких системных вызовах? RAS-то каким тут боком приклеилось у тебя?
Мухи, котлеты, кони, люди - все в одной куче....
> Не скажете ли мне зачем мы делаем бинд, после создания сокета
> (нафиг он тогда вообще нужен?)? и еще ...
Не знаю, кто такие мы... Для чего ты делаешь bind-closesocket я тоже не понял... Зачем тебе символьный сокет вообще, тоже непонятно.
Вообще,.... бред какой-то....
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2004.02.29;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.01 c