スクラムとは 仕事が進まなく技術力もないリーダーのごっこ遊び

Python uuid.getnode() MACアドレス取得できない

先日 "X(古Twitter)" で 

"Get your MAC address using the uuid module in Python"というのが流れてたので

下記コードで試したが、 私の環境(Windows 11)では uuid.getnode() でMACアドレス取得できなかった。

macaddr = [hex(n >> (5 - i) * 8 & 0xff)[2:].zfill(2) for (i, n) in enumerate([mac] * 6)]

Chat GPTに聞くと uuid.getnode()ではMACアドレスを取得できない場合があるとのこと

代替え案は 「 netifaces 」を使えということでした

 

python3 -m pip install netifaces # ← netifacesをインストールする

import netifaces
def get_mac_addresses():
    macs = []
    for interface in netifaces.interfaces():
        addrs = netifaces.ifaddresses(interface)
        if netifaces.AF_LINK in addrs:
            for link in addrs[netifaces.AF_LINK]:
                mac = link.get('addr')
                if mac and len(mac) == 17:  
                    macs.append(mac)
    return macs

print(get_mac_addresses())

上記コードを実行すると わたしの環境で 正しくMACアドレスが取得できた