![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перечисление сетевых интерфейсов на локальном компьютере.
maguk © (2004-08-27 14:35:00)Нужно перечислить активные интерфейсы. В частности интересуют тип интерфейса (локальный, dial-up и т.п.), IP-адрес(а), маска(ки) подсети. А еще лучше перечислить ВСЕ интерфейсы, т.е. активные и неактивные (например, программно отключенные в Windows 2000/XP). Как это делается?
Также второстепенный вопрос: определяю Broadcast-адрес для конкретной подсети следующим образом...
uses
WinSock;
var
ip_addr, mask, broadcast: cardinal;
broadcast_str: string;
begin
mask := inet_addr('255.255.255.0'); // маска подсети
ip_addr := inet_addr('192.168.0.1'); // IP-адрес
broadcast := (ip_addr and mask) or (not mask); // результат
broadcast_str := inet_ntoa(in_addr(broadcast)); // результат в удобочитаемом виде
end;
...правильно ли я делаю? Т.е. конкретно для моих параметров определяется правильно, будет ли это так же правильно для ЛЮБОЙ другой связки IPадрес-маска?
maguk (2004-08-30 19:03:00) [1]Всем, спасибо. Нашел другой способ, как утверждает автор статьи, "наиболее корректный")). Через функцию WSAIoctl с параметром SIO_GET_INTERFACE_LIST. Вот сижу, разбираюсь...
VID (2004-08-30 00:58:00) [2]Ihor Osov'yak © (30.08.04 0:36) [1]
А что если вообще инфу о имеющихся адаптерах читать из реестра откуда-нибудь ?
Ihor Osov'yak (2004-08-30 00:36:00) [3]GetAdaptersInfo (iphlpapi.dll) - получение информации об сетевых адаптерах.
в буфере размещает цепочку из структур _IP_ADAPTER_INFO - там есть информвация, которой Вы интересуетесь. Одно из полей структуры - Type - тип адаптера..
Но, к сожадению - только для включеных адаптеров, и тех адаптеров, для поторый установлена поддержка TCP/IP (здесь маленькая вероятность того, что я немного ошибаюсь - работал с этим давно и мало, а экспериментировать сейчас нет времени). Инфо ою выключеных адаптерах вероятнее всего можно получить посредством WMI (но это тоже предположение).