Запуск netsh interface ipv4 show interfaces
cmd отображает некоторую информацию о сетевом интерфейсе, включая состояние (подключен или отключен).Хранится ли эта информация в реестре, и если да, то где ее можно найти?
Я знаю, что IP-адреса находятся в подразделах HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
(как ответилздесь), но я не вижу там информации о состоянии. Я нашел значение StaleAdapter
в подключах HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DNSRegisteredAdapters
, которое обновляется при подключении/отключении. Однако я сомневаюсь, что это действительно то, что я ищу, так как в выводе меньше подключей, чем сетевых интерфейсов netsh
.
решение1
Сомневаюсь. Нет смысла хранить такую информацию на диске. ОС может просто запросить сетевую карту. С другой стороны, адреса DHCP имеют преимущество в том, что их можно записать на диск. Если компьютер отключится, то после восстановления он сможет запросить тот же адрес у сервера DHCP (но не обязательно ожидать, что этот запрос будет выполнен).
Если вы хотите получить доступ к данным не через графический интерфейс, а каким-то другим способом, вы можете обнаружить, что такую информацию можно получить с помощью WMI.
Один из способов работы с WMI — использовать команду WMIC. Ниже могут быть показаны некоторые сведения о состоянии сетевых карт.
WMIC NIC WHERE (NetEnabled=TRUE) GET Availability,Index,Name,MACAddress,NetEnabled,NetworkAddresses,Speed /FORMAT:LIST
Это всего лишь часть того, что я выбрал. (Если вы видите «Недопустимый запрос», попробуйте удалить некоторые элементы, пока не выясните, какой запрос был недопустимым.) Чтобы увидеть больше, вы можете выполнить:
WMIC NIC WHERE (NetEnabled=TRUE) GET /FORMAT:LIST