獲取網卡物理mac地址時的問題,mac地址隨機變動。


在開發過程中需要獲取物理網卡的MAC地址:

python代碼如下:

import wmi
c = wmi.WMI()

for s in c.Win32_NetworkAdapter():
    print(s.MACAddress)

 在實際過程中,有時候會發現mac地址每次獲取會發生改變,

通過檢查發現,獲取mac地址時會把系統虛擬的網卡地址也會獲取到。我們通過powershell命令進行查看當前系統中擁有MAC地址的有那些設備:

PS C:\Users\xxx> get-wmiobject -class Win32_NetworkAdapterConfiguration -namespace "root\cimv2" | select ServiceName,ipadress,MacAddress

ServiceName  ipadress MacAddress
-----------  -------- ----------
kdnic
rt640x64
RtlWlanu              50:2B:73:D8:1A:C9
vwifimp               52:2B:73:D8:1A:C9
RasSstp
RasAgileVpn
Rasl2tp
PptpMiniport
RasPppoe
NdisWan               F2:BB:20:52:41:53
NdisWan               0A:93:20:52:41:53
NdisWan               16:86:20:52:41:53
vwifimp               50:2B:73:D8:1A:C9
VMnetAdapter          00:50:56:C0:00:01
VMnetAdapter          00:50:56:C0:00:08

  看結果中的NdisWan,如果獲取到的是它,那機器每次重啟都有可能發生改變。

所以需要把代碼做一下調整:

import wmi
c = wmi.WMI()

for s in c.Win32_NetworkAdapter():
        if(s.MACAddress != None and s.PhysicalAdapter):
            print(s.MACAddress)

  過濾掉沒有mac地址的設備和非物理網絡設備。如果有虛擬機,可以把虛擬機的虛擬網卡也過濾掉。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM