GNU/Linux >> Linux の 問題 >  >> Linux

MAC アドレスの取得

Python 2.5 には、(少なくとも 1 つのバージョンで) MAC アドレスを必要とする uuid 実装が含まれています。 Mac 検出機能を独自のコードに簡単にインポートできます:

from uuid import getnode as get_mac
mac = get_mac()

戻り値は 48 ビット整数の MAC アドレスです。


特定のローカル インターフェイスの MAC を取得するための Linux でのこの問題に対する純粋な Python ソリューションは、もともと vishnubob によってコメントとして投稿され、この activestate レシピで Ben Mackey によって改善されました

#!/usr/bin/python

import fcntl, socket, struct

def getHwAddr(ifname):
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    info = fcntl.ioctl(s.fileno(), 0x8927,  struct.pack('256s', ifname[:15]))
    return ':'.join(['%02x' % ord(char) for char in info[18:24]])

print getHwAddr('eth0')

これは Python 3 互換コードです:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import fcntl
import socket
import struct


def getHwAddr(ifname):
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    info = fcntl.ioctl(s.fileno(), 0x8927,  struct.pack('256s', bytes(ifname, 'utf-8')[:15]))
    return ':'.join('%02x' % b for b in info[18:24])


def main():
    print(getHwAddr('enp0s8'))


if __name__ == "__main__":
    main()

Linux
  1. CentOS8でMACアドレスを変更する方法

  2. Ubuntu21.10でMACアドレスを検索する

  3. シェル スクリプトを使用して MAC アドレスを取得する

  1. MACアドレスをファイルに出力

  2. MAC アドレスを UUID に置き換えます

  3. IPアドレスを取得するためのシェルコマンド?

  1. Debian10でMACアドレスを変更/なりすましする方法

  2. Ubuntu 14.04で永続的なMacアドレスを設定しますか?

  3. WiFi ネットワーク インターフェイスの MAC アドレスを取得する方法を教えてください。