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

Вниз

Сетевые девайсы и их адреса...   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.017 c
3-93765
Fom
2004-02-04 10:30
2004.02.29
Как правильно обработать onValidate?


3-93779
rosl
2004-02-04 06:43
2004.02.29
Excel


1-93878
donkey
2004-02-16 12:15
2004.02.29
Поиск по файлу


6-94053
Silentor
2003-12-24 20:47
2004.02.29
класс TгарантированнядоставкаUDP ?


1-93951
anbezr
2004-02-18 17:56
2004.02.29
как выполнить Bring To Front