Программно получать информацию об отключенном сетевом адаптере в .NET - PullRequest
3 голосов
/ 20 марта 2010

У меня есть приложение, написанное на C #, которое должно получать информацию, такую ​​как IP-адрес, маску подсети от отключенного сетевого адаптера.

Я пытался использовать различные методы, такие как WMI и класс .NET NetworkAdapter, но они не возвращают никаких полезных данных, когда сетевой адаптер отключен. Я почти уверен, что Windows хранит эту информацию где-то, поскольку я могу применить сетевые настройки с помощью netsh, и она правильно отображается на панели управления.

Одна вещь, которая работала для меня в XP, заключалась в разборе выходных данных инструмента netsh, и он возвращал информацию даже для отключенного адаптера. Однако это не работает в Windows 7.

Выход Win XP:

Configuration for interface "Local Area Connection 5"
    DHCP enabled:                         No
    IP Address:                           169.254.0.128
    SubnetMask:                           255.255.255.0
    InterfaceMetric:                      0

Выход Win7:

Configuration for interface "Local Area Connection 2"
    DHCP enabled:                         No
    InterfaceMetric:                      5

Есть идеи?

1 Ответ

1 голос
/ 17 февраля 2011
NetworkChange.NetworkAddressChanged += new NetworkAddressChangedEventHandler(NetworkChange_NetworkAddressChanged);

и / или

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\*
- List Interfaces

, а затем

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\\*\Parameters\Tcpip
current settings parameters 

если DHCP - включен, то только NetworkChange.NetworkAddressChanged, поскольку невозможно определить текущий IP

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...