terça-feira, outubro 13, 2009

mac address em python

Algumas pessoas vez ou outra precisam da informação do mac address da placa de rede para qualquer coisa. No meu caso é para simples criação de logs, onde o mac address e o serial são os identificadores da maquina. Fazer isso através do shellscript não é tão complicado, mas, eu pelo menos, não sou muito fã de como as coisas ficam "organizadas" no shell-script. Então podemos fazer praticamente tudo que o shell faz usando python.
Outro dia estava fuçando como fazer isso, já que minha caminhada em python começou a pouco tempo e eu ainda apanho um bocado, mas para "facilitar" 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 saida dele usando shell. Da seguinte forma:
$mac=$(ifconfig eth0) && mac=${mac:45:25} && echo $mac >> arquivo.txt

a saida no meu caso foi a seguinte:
00:24:00:b0:e7:00

Mas sinceramente isso não fica tão agradavel de se usar... Pelo menos não para mim...
Então podemos fazer um pequeno script em python um pouco mais trabalhoso organizado.

O script em python da mesma forma que o shell apresentará a mesma saida, porém as possibilidades são muito maiores do que se pode fazer.
00:24:00:b0:e7:00

OBS1. O script funciona bem em qualquer Linux. Para qualquer outro sistema você tem que saber qual modulo substitui o AF_PACKET.
OBS2. Você pode usar uma interpretação do comando ifconfig ou ipconfig no python como acontece no shell script mas isso não seria muito normal de se fazer.