mac address da placa de rede com python (linux)

4 05 2008

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.


Ações

Informações

Deixe um comentário