簡體   English   中英

Python-查詢網絡接口設置

[英]Python - query network interface setting

我的夢想是使用python查詢WIN上的網卡設置。 我需要查詢NIC是否設置為全雙工,以及是否將其設置為1000Mb full。 WMI名為Win32_NetworkAdapterConfiguration的類不提供這些信息。或者,cmd命令行解決方案也可能會引起誤解(通過python調用)。

日Thnx

正如@ironfroggy所說,這不是特定於Python,而是Windows的一般問題。

當我們想以編程方式在網卡上找到速度和雙工設置時,這非常困難。 最后,我們求助於遍歷注冊表,注冊表的結構因您的NIC供應商而異。

它是這樣的: 對於任何錯誤,我們深表歉意:

  1. 查找HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Network並查找具有數據“網絡適配器”的GUID。 將此<GUID1>
  2. <GUID1>鍵的下面是每個NIC的另一個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的值,其值包含單詞“ speed”和“ duplex”。 記住鍵名並將其命名為<SpeedDuplexParamName>
  7. <SpeedDuplexParamName>下方有一個enum鍵,該鍵將數字與描述相匹配,例如“自動檢測”和“ 100 Mb已滿”。
  8. 返回幾級到找到NetCfgInstanceId 在附近,您可以看到當前值作為一個枚舉。 在此處的一個示例中,值名稱為RequestedMediaType ,值為6。
  9. 查找枚舉值以找到速度和雙工設置。

我看到@ DrFalk3n鏈接到可能說相同的Microsoft文章,但是如果有幫助,我將在此處保留。

這確實不是python問題。 您可以使用win32api進行任何操作,也可以通過Python進行操作,因此這里的問題只是關於Windows API,而恰好是從Python調用它們並沒有什么區別。 實際上,沒有Python標記的詢問可能會得到更好的響應,因為人們會看到知道如何使用另一種語言(使用相同的API)的人。

是! 這確實不是python問題。 無論如何,請看一下: 列出網絡適配器配置屬性

然后瀏覽到python @ microsoft腳本存儲庫可能對您的問題有所幫助。

您還可以在python中找到有用的代碼:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM