Намерете MAC адреса на моя компютър с python

Използвайки функцията, която намерих от форум/нишка (посочена по-долу), мога да намеря MAC адреса на моя компютър в python. Тази функция обаче връща грешен MAC адрес. Този компютър има адаптер за Ethernet и безжична мрежа. Компютърът, който използвам, използва безжичен LAN адаптер. Как да намеря какъв MAC използва компютърът и какъв е физическият адрес (MAC) на този адаптер?

Това е кодът, който открих, който връща неправилния MAC:

def get_mac():
    import uuid
    return str(':'.join(['{:02x}'.format((uuid.getnode() >> i) & 0xff) for i in range(0,8*6,8)][::-1])).upper()

Ако е необходима още информация, моля, публикувайте коментар и аз ще добавя каквото мога

Благодаря ти!


person ndurvasula    schedule 23.02.2014    source източник


Отговори (2)


Ако използвате Linux, можете да намерите списъка с адаптери тук: /sys/class/net/

И прочетете MAC адреса на конкретен интерфейс, например eth0, така:

with open('/sys/class/net/eth0/address') as f:
    mac = f.read()
person govorox    schedule 25.09.2015
comment
Не работи за всяка система, някои нямат sys виртуална файлова система. - person jevgenij; 29.08.2020

from uuid import getnode as get_mac
mac = get_mac()

Забележка: Моля, обърнете внимание дали може да се върне октет или десетичен знак и да гледате шестнадесетичен в изхода на ifconfig

person PersianGulf    schedule 23.02.2014
comment
В момента използвам абсолютно същото нещо. Кодът, който използвам, използва uuid.getnode() и добавя двоеточие на всеки 2 знака - person ndurvasula; 23.02.2014
comment
Проверихте ли за октет или десетичен знак, също проверете за всички интерфейси, използвайте ifconfig -a - person PersianGulf; 23.02.2014
comment
Използвам Windows. ipconfig /all ми показва моя MAC адрес. Но как да използвам това в python - person ndurvasula; 23.02.2014
comment
››› import os ››› os.system(ipconfig /all) - person PersianGulf; 24.02.2014
comment
Но как да търся, за да намеря своя MAC? Ще трябва ли да използвам регулярен израз? - person ndurvasula; 24.02.2014
comment
освен регулярен израз, нямате никакво решение, но ако предпочитам да използвам предишно решение, не извиквайте друго приложение. - person PersianGulf; 24.02.2014
comment
MAC на какъв мрежов интерфейс предоставя? Стойността, която получавам от това, не съответства на нито една от реално съществуващите в моята система. - person jevgenij; 29.08.2020