Как сказал @ironfroggy, это не относится к Python, а является общим вопросом для Windows.
Когда мы хотели программно найти настройки скорости и дуплекса на сетевых картах, это было очень сложно. В конце мы прибегли к блужданию по реестру, который имеет различную структуру в зависимости от поставщика вашей сетевой карты.
Это выглядит примерно так; извиняюсь за любые ошибки:
- Найдите
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network
и найдите GUID с данными «Сетевые адаптеры». Назовите это <GUID1>
.
- Под ключом
<GUID1>
находится еще один GUID для каждого сетевого адаптера. Позвоните одному из них <GUID2>
.
- Перейти к
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\<GUID1>
.
- Перебирайте его ключи (они выглядят как 0000, 0001, 0002 и т. Д.), Пока не найдете ключ со значением
NetCfgInstanceId
, равным <GUID2>
.
- Ниже ищите подключ, зависящий от поставщика NIC. Некоторые из них мы определили:
- NDI \ Params
- NDI \ savedParams
- BRCMndi \ PARAMS
- Там итерируйте ключи, пока не найдете ключ со значением
ParamDesc
, данные которого содержат слова «скорость» и «дуплекс». Запомните имя ключа и назовите его <SpeedDuplexParamName>
.
- Под
<SpeedDuplexParamName>
есть клавиша enum
, которая сопоставляет номера с описаниями, такими как «Автоопределение» и «100 Мб заполнено».
- Вернитесь на несколько уровней туда, где вы нашли
NetCfgInstanceId
. Рядом вы можете увидеть текущее значение как перечисление. Для одного примера здесь имя значения было RequestedMediaType
, а значение было 6.
- Просмотрите значение перечисления, чтобы найти настройку скорости и дуплекса.
Я вижу, что @ DrFalk3n ссылается на статью Microsoft, которая может сказать то же самое, но я оставлю это здесь, если это будет полезно.