mac address da placa de rede com python (linux)

Pra pegar o endereço MAC (Media Access Control) de uma placa de rede com python, você precisa primeiro ser root.

Aqui vai um exemplo:

sudo python
>>> import socket
>>> fd = socket.socket(socket.AF_PACKET, socket.SOCK_RAW)
>>> fd.bind(('eth0', 9999))
>>> mac = fd.getsockname()[-1]
>>> print ':'.join(['%02x' % ord(n) for n in mac])
00:16:d3:93:c2:e6

Outros sistemas:

1. Encontrei um cara que faz isso no Windows da maneira mais tosca – interpretando o resultado do ipconfig /all. Acho que deve ter uma maneira melhor que essa. Em todo caso, veja o link.

2. Outros Unix-like tipo BSD não têm AF_PACKET, então isso não funciona. Pra cada um, tem que saber qual é o ioctl que manda pro socket, ai usando o módulo struct do python fica fácil pegar o resultado.

Anúncios

2 Comentários on “mac address da placa de rede com python (linux)”

  1. maltzsama disse:

    mão na roda

  2. […] ou disseminar o conhecimento colocarei abaixo as linhas de código que achei em um blog de um colega blogueiro. Primeiramente em shell, poderiamos simplesmente usar um comando e editar a […]


Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s