トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

Diary/2020-3-30

PythonでMACアドレスを扱う

netifacesっていうのを使うのが便利みたい.

import netifaces

で,

netifaces.interfaces()

とかやるとインターフェースのリストが取れる.
名前がわかっている個別のインターフェースについては,

netifaces.ifaddresses('enp3s0f1')

とかすればいい.'enp3s0f1'がインターフェース名.
いくつかの情報がdictに格納されてくる.
イーサネットの情報が欲しければ,

netifaces.ifaddresses('enp3s0f1')[netifaces.AF_LINK]

でアクセスできる.
MACアドレスは,

netifaces.ifaddresses('enp3s0f1')[netifaces.AF_LINK][0]['addr']

とかすると16進の:区切りの文字列で返ってくる.

macaddr_str = netifaces.ifaddresses('enp3s0f1')
bytearray([int(x, 16) for x in macaddr_str])

とかすると,バイト列として得られる.