2009-02-27 7 views
0

私の夢は、pythonを使ってWINのネットワークカードの設定を照会することです。私が必要とするのは、NICが全二重に設定されていて、それが1000Mbフルに設定されているかどうかを問い合わせることです。 Win32_NetworkAdapterConfigurationという名前のWMIクラスは、これらの情報を提供していません。代わりに、(コマンドラインからの呼び出しを介して)cmdコマンドラインsulutionも興味をそそることができます。Python - クエリネットワークインターフェイスの設定

Thnx

+0

私はPythonのタグを削除しましたので、Pythonの質問を無視するWindowsユーザーに表示される可能性があります。 Pythonも削除するには、質問のタイトルを編集する必要があります。 –

答えて

1

これは実際にはPythonの質問ではありません。あなたがwin32apiでできることは何でも、あなたはPythonを通して行うことができるので、ここでの質問はWindows APIに関するものであり、Pythonからそれらを呼び出すことに何の違いもありません。 Pythonタグを使わないで尋ねると、実際には同じAPIを使用する別の言語でそれを行う方法を誰が知っているかが分かるので、実際にはより良いレスポンスを得るかもしれません。

0

はい!これは実際にはPythonの質問ではありません。とにかく見てみましょう: List Network Adapter Configuration Properties

とあなたの問題のためrepository多分参考になっマイクロソフトのスクリプト@パイソンにダウン眉。

また、pythonで便利な見つけることができます:

>>> import os 
>>> f= os.popen('<type your dos command>') 
>>> s = f.read() 
>>> print s 
3

@ironfroggyが言ったように、これは、Pythonに固有のものではなく、一般的なWindowsの質問。

ネットワークカードの速度とデュプレックスの設定をプログラムで見つけようと思ったとき、非常に困難でした。最終的に私たちはあなたのNICのベンダーに応じて異なる構造を持つレジストリをさまよっていました。

これは次のようなものです。すべてのエラーのために謝罪:

  1. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Networkを検索し、データ「ネットワークアダプタ」を持っているのGUIDを探します。この<GUID1>と呼んでください。
  2. <GUID1>の下に、各NICの別のGUIDがあります。それらのうちの1つを<GUID2>と呼んでください。
  3. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\<GUID1>にアクセスしてください。
  4. NetCfgInstanceIdの値が<GUID2>のものが見つかるまで、そのキーを繰り返します(0000、0001、0002などのように見えます)。
  5. ここでは、NICベンダーに依存するサブキーを探します。 Ndiを\ savedParamsは
  6. のparams BRCMndi \は、そこの下
    • Ndiを\のparamsあなたがデータParamDescと呼ばれる値を持つものを見つけるまでのキーを反復処理:我々が定義されているいくつかはあります"speed"と "duplex"という単語が含まれています。キー名を覚えて、それを<SpeedDuplexParamName>と呼んでください。
    • <SpeedDuplexParamName>の下には、enumというキーがあり、数字は「自動検出」や「100Mbフル」などの説明と一致します。
    • いくつかのレベルを見つけたところに戻ってください。NetCfgInstanceIdその近くで、現在の値を列挙として見ることができます。ここでの例では、値の名前はRequestedMediaTypeで、値は6でした。
    • 速度とデュプレックスの設定を見つけるために列挙値を調べます。

私は@ DrFalk3nが同じと言うかもしれないマイクロソフトの記事にリンクしているのを見ましたが、これは役に立つかもしれないのでここに残しておきます。