Python - настройка сетевого интерфейса запроса - PullRequest
0 голосов
/ 27 февраля 2009

Моя мечта - запросить настройки сетевой карты на WIN с помощью python. Мне нужно запросить, установлен ли сетевой адаптер в дуплексный режим и заполнен ли он на 1000 МБ. Класс WMI с именем Win32_NetworkAdapterConfiguration не предоставляет эту информацию. В качестве альтернативы может также быть интересным использование командной строки cmd (посредством вызова из python).

Thnx

Ответы [ 3 ]

3 голосов
/ 27 февраля 2009

Как сказал @ironfroggy, это не относится к Python, а является общим вопросом для Windows.

Когда мы хотели программно найти настройки скорости и дуплекса на сетевых картах, это было очень сложно. В конце мы прибегли к блужданию по реестру, который имеет различную структуру в зависимости от поставщика вашей сетевой карты.

Это выглядит примерно так; извиняюсь за любые ошибки:

  1. Найдите HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network и найдите GUID с данными «Сетевые адаптеры». Назовите это <GUID1>.
  2. Под ключом <GUID1> находится еще один GUID для каждого сетевого адаптера. Позвоните одному из них <GUID2>.
  3. Перейти к HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\<GUID1>.
  4. Перебирайте его ключи (они выглядят как 0000, 0001, 0002 и т. Д.), Пока не найдете ключ со значением NetCfgInstanceId, равным <GUID2>.
  5. Ниже ищите подключ, зависящий от поставщика NIC. Некоторые из них мы определили:
    • NDI \ Params
    • NDI \ savedParams
    • BRCMndi \ PARAMS
  6. Там итерируйте ключи, пока не найдете ключ со значением ParamDesc, данные которого содержат слова «скорость» и «дуплекс». Запомните имя ключа и назовите его <SpeedDuplexParamName>.
  7. Под <SpeedDuplexParamName> есть клавиша enum, которая сопоставляет номера с описаниями, такими как «Автоопределение» и «100 Мб заполнено».
  8. Вернитесь на несколько уровней туда, где вы нашли NetCfgInstanceId. Рядом вы можете увидеть текущее значение как перечисление. Для одного примера здесь имя значения было RequestedMediaType, а значение было 6.
  9. Просмотрите значение перечисления, чтобы найти настройку скорости и дуплекса.

Я вижу, что @ DrFalk3n ссылается на статью Microsoft, которая может сказать то же самое, но я оставлю это здесь, если это будет полезно.

1 голос
/ 27 февраля 2009

Это действительно не вопрос питона. Все, что вы можете сделать с win32api, вы можете сделать через Python, поэтому вопрос здесь только о Windows API, и не имеет никакого значения, что вы вызываете их из Python. На самом деле, запрос без тега Python может дать лучший ответ, потому что люди будут искать, кто знает, как сделать это на другом языке, который будет использовать тот же API.

0 голосов
/ 27 февраля 2009

Да! Это действительно не вопрос питона. В любом случае взгляните на: Список свойств конфигурации сетевого адаптера

и просматривает скрипты python @ microsoft репозиторий может быть полезным для вашей проблемы.

Вы также можете найти полезное в Python:

>>> import os
>>> f= os.popen('<type your dos command>')
>>> s = f.read()
>>> print s
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...