1 votos

¿Por qué diferentes computadoras devuelven la misma dirección MAC?

Tengo acceso a diferentes máquinas donde se ejecuta mi código de Python. Me gustaría obtener la dirección MAC de una tarjeta de red de cada una de estas máquinas. Siguiendo este hilo, utilizo:

import uuid
uuid.getnode()

y obtengo el mismo número en diferentes máquinas: 190070690681122, que convierto al formato habitual con:

":".join(f"{b:02x}" for b in uuid.getnode().to_bytes(6, "big"))

y obtengo ac:de:48:00:11:22, que es diferente de la dirección MAC que veo en Preferencias de Red. Me intriga por qué varias máquinas devuelven el mismo número, así que busqué al respecto y encontré otro hilo que también encuentra este número:

en9: flags=8863 mtu 1500
    ether ac:de:48:00:11:22 

Así que creo que esto es específico de las computadoras Apple.

En otro Mac, ejecuté este código y obtuve el mismo número, pero al ejecutarlo cuatro días después encontró otra dirección MAC: 3e:22:fb:..., cuando la dirección MAC real es diferente por una letra: 3c:22:fb....

¿Cuál es la fuente del problema y cómo puedo obtener de manera confiable la dirección MAC real de una computadora Mac (sin doble sentido)?

6voto

Ture Pålsson Puntos 46

Me detuve a ver qué hace uuid.getnode() y... ay. Básicamente ejecuta ifconfig y elige lo primero que encuentra que se parezca a una dirección MAC. Esto parece muy frágil. De hecho, obtengo la misma dirección que tú, porque elige la interfaz en3, que parece ser algún tipo de magia utilizada para Parallells.

Por supuesto, cualquier código que pretenda encontrar la dirección MAC de una computadora va a ser frágil, porque cualquier computadora puede tener múltiples interfaces y, en el mundo de hoy donde todo está virtualizado, usualmente las tienen.

EDICIÓN No fui del todo justo con uuid.getnode(). No solo toma la primera dirección MAC que ve, sino que hace algunos filtros para encontrar un buen candidato. Sin embargo, el hecho de que haga esto y aún así obtenga un resultado inútil indica lo frágil que es el enfoque.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X